Python 中有很多可以操作 Excel 的库。与其对比哪个好用,还不如先用一个再说。

这里我们第一个选择 xlwings

xlwings - 让Excel跑得飞快

  • Scripting(脚本): 使用类似VBA的语法,在Python中自动处理Excel数据或者与Excel交互。
  • Macros(宏): 用强大而干净的Python代码替代VBA宏。
  • UDFs(用户定义函数): 用Python编写用户定义函数(UDFs),仅适用于windows系统。
  • REST API: 通过REST API向外部开放Excel工作簿。

安装要求

  1. Excel ,确保已安装

  2. Python3.5 以上,确保已安装

安装

1
pip3 install xlwings

或者

1
pip3 install "xlwings[all]"

addin

1
xlwings addin install

打开或创建 Excel 文件

1
2
3
>>> import xlwings as xw
>>> wb = xw.Book() # this will create a new workbook
>>> wb = xw.Book('FileName.xlsx') # connect to an existing file in the current working directory

初始化工作表(sheet)对象

1
sht = wb.sheets['Sheet1']

区域(range)读数据/往区域写数据

1
2
3
>>> sht.range('A1').value = 'Foo 1'
>>> sht.range('A1').value
'Foo 1'

快速访问当前活动工作簿的当前活动工作表

1
2
3
4
>>> import xlwings as xw
>>> xw.Range('A1').value = 'Foo'
>>> xw.Range('A1').value
'Foo'

只有在和Excel交互的时候,才能使用 xw.Range 。在写脚本的时候,还是要像前面演示的那样通过工作簿和工作表对象。

##实战Demo

macOS

1
xlwings quickstart myproject

注意

Python 操作 Excel 不像 读取一般的文件一样,其实核心在于 Python 代替我们用 Excel 去操作表格文件。对表格文件的修改最后还是通过 Excel 软件自己来完成的。

核心流程

  1. xlwings 埋在 Excel 中
  2. Python 调用 预先埋藏的“间谍” xlwings
  3. “间谍” xlwings 执行对应的指令。

参考文档

https://docs.xlwings.org/zh_CN/latest/quickstart.html