xlwings
的函数主要围绕操作 Excel 的 应用程序(App)、工作簿(Book)、工作表(Sheet)、单元格范围(Range) 等核心对象展开。以下是具体分类的函数及方法详解:
1. App
类(Excel 应用程序)
管理 Excel 进程,启动或关闭应用。
常用方法
App(visible=True, add_book=True)
创建 Excel 实例。
visible
: 是否显示 Excel 界面(默认为True
)。
add_book
: 是否自动创建空白工作簿(默认为True
)。
app.quit()
关闭 Excel 应用(强制终止进程)。
app.books
返回所有打开的工作簿对象(Books
集合)。
app.kill()
强制终止所有 Excel 进程(谨慎使用)。
2. Book
类(工作簿)
操作 Excel 文件(.xlsx
等)。
常用方法
app.books.open('file.xlsx')
打开现有工作簿。
app.books.add()
创建新工作簿。
book.save('path/to/save.xlsx')
保存工作簿(未指定路径则保存到默认位置)。
book.close()
关闭工作簿(未保存时可能弹出提示)。
book.sheets
返回所有工作表对象(Sheets
集合)。
book.activate()
将工作簿设为当前活动窗口。
3. Sheet
类(工作表)
操作单个工作表。
常用方法
book.sheets.add(name='Sheet1', before=None, after=None)
添加新工作表,可指定名称和位置。
sheet.delete()
删除当前工作表。
sheet.clear()
清除所有内容和格式。
sheet.autofit(axis=None)
自动调整列宽或行高:
axis='columns'
调整列宽,axis='rows'
调整行高,默认两者都调整。
sheet.range(cell_address)
选择单元格范围(如'A1:B2'
)。
sheet.cells(row, column)
按行列索引选择单元格(如cells(1,1)
对应A1
)。
sheet.name
获取或修改工作表名称(如sheet.name = 'Data'
)。
4. Range
类(单元格范围)
操作单元格数据、格式和公式。
核心方法
-
range.value
读取或写入单元格值(支持标量、列表、NumPy 数组、Pandas DataFrame)。
# 写入二维数据
sheet.range('A1').value = [[1, 2], [3, 4]]
# 读取为 DataFrame
df = sheet.range('A1').options(pd.DataFrame, expand='table').value
range.formula
设置或获取单元格公式(如=SUM(A1:A10)
)。
range.number_format
设置数字格式(如'0.00%'
、'YYYY-MM-DD'
)。
range.color
设置单元格背景色(RGB 元组,如(255, 0, 0)
表示红色)。
range.font
设置字体属性:
range.font.bold = True # 加粗
range.font.color = (0, 0, 0) # 黑色字体
range.font.size = 12 # 字号
range.api
直接调用 Excel VBA 对象模型(高级功能,需熟悉 Excel API)。
格式控制
range.merge()
/range.unmerge()
合并或取消合并单元格。
range.borders
设置边框样式:
border = range.borders
border.color = (0, 0, 0) # 边框颜色
border.weight = 2 # 边框粗细
range.row_height
/range.column_width
调整行高或列宽(单位:磅)。
5. 其他实用函数
与 pandas 交互
options()
方法
指定数据读取/写入的选项:
sheet.range('A1').options(index=False, header=True).value = df # 写入 DataFrame 时不包含索引
图表操作
sheet.charts.add()
创建图表对象:
chart = sheet.charts.add(left=100, top=100, width=300, height=200)
chart.set_source_data(sheet.range('A1:B10'))
chart.chart_type = 'line' # 图表类型(柱状图、饼图等)
宏与事件
-
调用 VBA 宏
macro = book.macro('MyMacro')
macro() # 执行宏
- 事件绑定
@xw.sub
def on_save():
print("工作簿已保存!")
6. 高级功能
用户定义函数 (UDF)
用 Python 编写 Excel 函数(需安装 xlwings
插件):
@xw.func
def add_numbers(x, y):
return x + y
在 Excel 中直接调用 =add_numbers(1, 2)
。
远程操作 (Windows)
通过 COM 服务器远程控制 Excel:
app = xw.App(visible=False, spec='path/to/excel.exe')
快速查找函数
使用
dir()
查看对象的所有属性和方法:
print(dir(sheet)) # 查看 Sheet 对象的方法
-
官方文档
xlwings 官方文档 提供完整的 API 参考。
示例场景
批量修改单元格格式
import xlwings as xw
with xw.Book('data.xlsx') as book:
sheet = book.sheets[0]
for row in range(1, 10):
cell = sheet.range(f'A{row}')
if cell.value > 100:
cell.color = (255, 0, 0) # 超过 100 的标红
book.save()
xlwings
的函数覆盖了 Excel 操作的方方面面,通过组合这些方法,可以实现复杂的自动化任务。建议结合具体需求查阅文档中的对应类和方法!