在Python中高效处理Excel文件可以借助多个强大的库,以下是10个常用库的操作指南,涵盖读取、写入、分析和自动化等场景:
![图片[1]_Python中高效处理Excel文件_知途无界](https://zhituwujie.com/wp-content/uploads/2025/04/d2b5ca33bd20250430104119.png)
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")
特点:
- 依赖
openpyxl或xlrd(旧版) - 适合表格数据的清洗、分析和批量操作
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")
注意:
xlrd2.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 - 复杂报表生成:
xlsxwriter或openpyxl - 旧版
.xls:xlrd/xlwt - 自动化操作:
win32com(Windows) - 高性能读取:
calamine或pyxlsb
根据需求组合使用这些库可以大幅提升Excel处理效率!
© 版权声明
文中内容均来源于公开资料,受限于信息的时效性和复杂性,可能存在误差或遗漏。我们已尽力确保内容的准确性,但对于因信息变更或错误导致的任何后果,本站不承担任何责任。如需引用本文内容,请注明出处并尊重原作者的版权。
THE END

























暂无评论内容