核心功能与优势
Excel 自动化:自动化打开、编辑、保存 Excel 文件。
双向交互:Python 与 Excel 之间无缝传递数据。
与 VBA 集成:直接在 Python 中调用 VBA 宏,或从 VBA 调用 Python 代码。
支持 pandas/NumPy:轻松将 Excel 数据转换为 DataFrame 或数组。
图表与格式控制:生成图表并调整单元格格式(字体、颜色、边框等)。
跨平台兼容:Windows 和 macOS 均支持。
主要模块与函数
以下是 xlwings
的核心类及其常用函数:
1. App
类(Excel 应用程序)
-
创建/连接应用:
import xlwings as xw
app = xw.App(visible=True) # 启动 Excel 应用(visible 控制是否显示界面)
-
常用函数:
-
app.quit()
:关闭 Excel 应用。 -
app.books
:获取所有打开的工作簿。
-
2. Book
类(工作簿)
-
打开/创建工作簿:
book = app.books.open('example.xlsx') # 打开现有文件
new_book = app.books.add() # 创建新工作簿
常用函数:
book.save('path/to/save.xlsx')
:保存工作簿。
book.close()
:关闭工作簿。
book.sheets
:获取所有工作表。
3. Sheet
类(工作表)
-
选择/创建工作表:
sheet = book.sheets['Sheet1'] # 按名称选择
sheet = book.sheets.add('NewSheet') # 新建工作表
常用函数:
sheet.range('A1:B2')
:选择单元格范围。
sheet.cells(row, column)
:按行列索引选择单元格。
sheet.autofit()
:自动调整列宽和行高。
4. Range
类(单元格范围)
-
读写数据:
range = sheet.range('A1')
range.value = 42 # 写入数据
data = range.value # 读取数据(支持多维列表/DataFrame)
常用函数:
range.formula = '=SUM(A1:A10)'
:设置公式。
range.number_format = '0.00%'
:设置数字格式。
range.color = (255, 0, 0)
:设置单元格背景色(RGB)。
range.api
:直接调用底层 Excel API(高级功能)。
5. 其他实用函数
-
与 pandas 交互:
import pandas as pd
df = pd.DataFrame([[1, 2], [3, 4]], columns=['A', 'B'])
sheet.range('A1').value = df # 写入 DataFrame
df_from_excel = sheet.range('A1').options(pd.DataFrame, expand='table').value # 读取为 DataFrame
生成图表:
chart = sheet.charts.add()
chart.set_source_data(sheet.range('A1:B10'))
chart.chart_type = 'line'
代码示例
import xlwings as xw
# 打开工作簿并写入数据
with xw.Book() as book:
sheet = book.sheets[0]
sheet.range('A1').value = 'Hello xlwings!'
sheet.range('A2').value = [[1, 2], [3, 4]] # 写入二维数组
sheet.range('A1').autofit() # 自动调整列宽
book.save('output.xlsx')
扩展功能
用户定义函数 (UDF):用 Python 编写 Excel 函数(需启用
xlwings
插件)。事件处理:例如在保存工作簿时触发 Python 代码:
@xw.sub
def on_save():
print("Workbook saved!")
安装
pip install xlwings
xlwings
是替代 VBA 或 Excel 公式的强大工具,尤其适用于需要复杂数据处理或自动化报表的场景。如需深入学习,可参考其官方文档。