1. 介绍
在数据分析和 Excel 自动化中,pandas
作为 Python 处理数据的强大库,而 xlwings
则可以高效操作 Excel。将 pandas
与 xlwings
结合使用,可以实现从 Excel 读取数据到 DataFrame、将 DataFrame 写入 Excel 以及 Excel 的自动化处理。
2. 从 Excel 读取数据到 Pandas DataFrame
2.1 读取整个表格
import xlwings as xw
import pandas as pdwb = xw.Book("example.xlsx") # 打开 Excel 文件
sheet = wb.sheets["Sheet1"] # 选择工作表# 读取 Excel 数据到 Pandas DataFrame
data = sheet.range("A1").expand().options(pd.DataFrame, index=False).value
print(data)
2.2 读取指定范围的数据
subset = sheet.range("A1:C10").options(pd.DataFrame, index=False).value
print(subset)
3. 将 Pandas DataFrame 写入 Excel
3.1 将 DataFrame 写入 Excel 指定位置
data = pd.DataFrame({"姓名": ["张三", "李四", "王五"],"年龄": [25, 30, 28],"城市": ["北京", "上海", "广州"]
})# 写入 Excel
sheet.range("A1").value = data
3.2 追加数据到 Excel
last_row = sheet.range("A" + str(sheet.cells.last_cell.row)).end("up").row
sheet.range(f"A{last_row+1}").value = data
4. 使用 Pandas 与 xlwings 自动化 Excel 处理
4.1 调整列宽
sheet.autofit("columns") # 自动调整列宽
4.2 应用 Excel 公式
sheet.range("D2").formula = "=SUM(B2:B10)" # 在 D2 单元格插入求和公式
4.3 设置 Excel 格式
sheet.range("A1:C1").font.bold = True # 设置标题加粗
sheet.range("B:B").number_format = "0" # 设置数值格式
5. 读取带有公式的 Excel 数据
5.1 获取公式内容
formulas = sheet.range("D2:D10").formula # 获取公式而不是计算后的值
print(formulas)
5.2 获取公式计算后的值
values = sheet.range("D2:D10").value # 获取计算后的值
print(values)
6. 结合 Pandas 与 xlwings 处理大数据
6.1 读取大数据集并转换
data = sheet.range("A1").expand().options(pd.DataFrame, index=False, chunksize=1000).value
6.2 分批写入 Excel
for i, chunk in enumerate(data):sheet.range(f"A{i*1000+1}").value = chunk
7. 结论
结合 pandas
和 xlwings
,我们可以高效地读取、写入和操作 Excel 数据,并利用 Excel 的自动化功能提升生产力。这种方法适用于数据分析、报表生成和企业自动化任务。