Python中高效处理Excel文件

在Python中高效处理Excel文件可以借助多个强大的库,以下是10个常用库的操作指南,涵盖读取、写入、分析和自动化等场景:

图片[1]_Python中高效处理Excel文件_知途无界

1. openpyxl

适用场景:处理.xlsx文件(支持公式、图表、样式)

from openpyxl import Workbook, load_workbook

# 创建新文件
wb = Workbook()
ws = wb.active
ws['A1'] = "Hello"
wb.save("test.xlsx")

# 读取文件
wb = load_workbook("data.xlsx")
ws = wb["Sheet1"]
print(ws['A1'].value)

特点

  • 支持Excel公式、样式和图表
  • 适合中小规模数据(内存消耗较高)

2. pandas

适用场景:数据分析与批量处理

import pandas as pd

# 读取Excel
df = pd.read_excel("data.xlsx", sheet_name="Sheet1")

# 写入Excel
df.to_excel("output.xlsx", index=False)

# 处理多表
with pd.ExcelWriter("multi_sheet.xlsx") as writer:
    df1.to_excel(writer, sheet_name="Sheet1")
    df2.to_excel(writer, sheet_name="Sheet2")

特点

  • 依赖openpyxlxlrd(旧版)
  • 适合表格数据的清洗、分析和批量操作

3. xlrd / xlwt

适用场景:旧版.xls文件处理(Python 3+需使用兼容版本)

import xlrd

# 读取.xls
book = xlrd.open_workbook("old_data.xls")
sheet = book.sheet_by_index(0)
print(sheet.cell_value(0, 0))

# 写入.xls(需xlwt)
import xlwt
wb = xlwt.Workbook()
ws = wb.add_sheet("Sheet1")
ws.write(0, 0, "Hello")
wb.save("output.xls")

注意

  • xlrd 2.0+仅支持.xlsx,旧版.xls需安装xlrd==1.2.0

4. xlsxwriter

适用场景:高性能写入.xlsx(不支持读取)

import xlsxwriter

wb = xlsxwriter.Workbook("output.xlsx")
ws = wb.add_worksheet()
ws.write("A1", "Hello")
ws.add_chart(...)  # 支持图表
wb.close()

特点

  • 支持条件格式、图表、VBA宏
  • 适合生成复杂报表

5. pyxlsb

适用场景:处理二进制.xlsb文件

from pyxlsb import open_workbook

with open_workbook("data.xlsb") as wb:
    with wb.get_sheet(1) as sheet:
        for row in sheet.rows():
            print(row[0].v)  # 读取值

6. tablib

适用场景:数据导出为多格式(Excel/CSV/JSON)

import tablib

data = tablib.Dataset(headers=['Name', 'Age'])
data.append(["Alice", 25])

# 导出Excel
with open("output.xlsx", "wb") as f:
    f.write(data.export("xlsx"))

7. win32com(仅Windows)

适用场景:Excel自动化(需安装pywin32

import win32com.client

excel = win32com.client.Dispatch("Excel.Application")
wb = excel.Workbooks.Open(r"C:\path\to\file.xlsx")
ws = wb.Sheets("Sheet1")
ws.Range("A1").Value = "New Value"
wb.Save()
wb.Close()
excel.Quit()

特点

  • 控制Excel进程,支持VBA操作
  • 依赖Microsoft Excel环境

8. pylightxl

适用场景:轻量级Excel处理(无外部依赖)

import pylightxl as xl

db = xl.readxl("data.xlsx")
print(db.ws("Sheet1").cell("A1"))  # 读取单元格

# 写入数据
db.ws("Sheet1").update_cell("A1", "Hello")
xl.writexl(db, "output.xlsx")

9. calamine(Rust加速)

适用场景:超快速读取.xlsx/.xlsb/.xls

import calamine

# 读取Excel(需安装calamine)
df = calamine.read_excel("data.xlsx", sheet_name="Sheet1")

特点

  • 基于Rust后端,性能极佳

10. ODBC/数据库驱动

适用场景:直接查询Excel作为数据库

import pyodbc

conn = pyodbc.connect(r"Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=data.xlsx")
cursor = conn.cursor()
cursor.execute("SELECT * FROM [Sheet1$]")
print(cursor.fetchall())

选择建议

  • 数据分析:优先用pandas
  • 复杂报表生成xlsxwriteropenpyxl
  • 旧版.xlsxlrd/xlwt
  • 自动化操作win32com(Windows)
  • 高性能读取calaminepyxlsb

根据需求组合使用这些库可以大幅提升Excel处理效率!

© 版权声明
THE END
喜欢就点个赞,支持一下吧!
点赞10 分享
评论 抢沙发
头像
欢迎您留下评论!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容