一、常用Python操作Excel库
1. 常用库对比
库名称 |
支持格式 |
主要功能 |
适用场景 |
pandas |
xls/xlsx |
数据读写/分析 |
数据分析与批量处理 |
openpyxl |
xlsx |
读写/修改/样式设置 |
复杂Excel文件操作 |
xlrd/xlwt |
xls |
读写旧版Excel |
兼容性要求高的场景 |
xlsxwriter |
xlsx |
创建文件/设置复杂格式 |
生成报表/图表 |
2.xlrd/xlwt
- 适用场景:处理
.xls
格式的旧版Excel
文件
- 核心功能:
xlrd
读取文件
xlwt
写入文件
xlutils
修改已有文件
- 示例:
import xlrd
wb = xlrd.open_workbook('数据.xls')
sheet = wb.sheet_by_index(0)
print(sheet.cell_value(0, 0))
import xlwt
wb = xlwt.Workbook()
sheet = wb.add_sheet('Sheet1')
sheet.write(0, 0, 'Hello')
wb.save('output.xls')
3. openpyxl
- 适用场景:处理
.xlsx
格式,支持读写与样式修改
- 核心功能:
- 创建/修改工作簿
- 单元格样式调整(字体、颜色、边框)
- 公式计算与图表生成
- 示例:
from openpyxl import load_workbook
wb = load_workbook("data.xlsx")
sheet = wb["Sheet1"]
for row in sheet.iter_rows(min_row=2, values_only=True):
print(row[0], row[1])
cell_b5 = sheet["B5"].value
wb = Workbook()
sheet = wb.active
sheet.title = "销售数据"
title_font = Font(bold=True, size=14)
sheet["A1"] = "2023年销售报表"
sheet["A1"].font = title_font
headers = ["月份", "销售额"]
data = [
["1月", 150000],
["2月", 180000],
["3月", 210000]
]
sheet.append(headers)
for row in data:
sheet.append(row)
for row in sheet.iter_rows(min_row=2):
for cell in row:
cell.alignment = Alignment(horizontal="center")
wb.save("sales_report.xlsx")
4. pandas
- 适用场景:数据清洗、分析与快速批处理
- 核心优势:
- 一行代码读取/写入Excel
- 支持合并多个文件(
pd.concat
)
- 内置数据透视表功能
- 示例:
import pandas as pd
df = pd.read_excel("data.xlsx", sheet_name="Sheet1")
df_range = pd.read_excel("data.xlsx",
usecols="A:C",
nrows=100)
with pd.ExcelFile("data.xlsx") as excel:
df1 = pd.read_excel(excel, "Sheet1")
df2 = pd.read_excel(excel, "Sheet2")
data = {
"姓名": ["张三", "李四", "王五"],
"年龄": [25, 30, 28],
"部门": ["技术部", "市场部", "财务部"]
}
df = pd.DataFrame(data)
with pd.ExcelWriter("output.xlsx") as writer:
df.to_excel(writer, sheet_name="员工信息", index=False)
df.describe().to_excel(writer, sheet_name="统计信息")
import pandas as pd
all_files = glob.glob("*.xlsx")
merged_df = pd.concat([pd.read_excel(f) for f in all_files])