Jon*_*Jon 15 python excel openpyxl xlwings
我大多只使用 xlwings 打开 ( read-write) 工作簿(因为我阅读的工作簿有复杂的宏)。但是我最近开始使用 openpyxl 打开 ( read-only) 工作簿,因为我需要阅读数千个工作簿来抓取一些数据。
我注意到 xlwings 和 openpyxl 读取工作簿的方式有很大的不同。我相信 xlwings 依赖于pywin32阅读工作簿。当您阅读工作簿时xlwings.Book(<filename>),实际工作簿会打开。我有一种感觉,这是一个结果pywin32。
但是,使用openpyxl.load_workbook(<filename>)工作簿时不会出现窗口。我有一种感觉,这是不使用pywin32.
除此之外,我没有进一步了解后端如何为每个库工作。有人可以对此有所了解吗?依赖xlwings和pywin32阅读工作簿是否有好处/成本,而openpyxl不是似乎没有使用pywin32?
Xuk*_*rao 27
你是正确的,xlwings依赖于pywin32,而openpyxl没有。
“.xlsx”excel 文件本质上是一个 zip 文件,其中包含多个根据 Microsoft 的OOXML 规范格式化的 XML 文件。有了这个规范,就可以创建一个能够直接用任何编程语言读取/写入 Excel 文件的程序。这是应用于openpyxl:它使用python代码直接读取/写入excel文件的方法。
Microsoft Excel 应用程序可以通过Win32 COM API由外部程序启动和控制。该pywin32包提供了 Win32 COM 和 Python 之间的接口。通过带有正确 pywin32 命令的 python 脚本,您可以完全控制 Excel 应用程序(打开 excel 文件、从单元格查询数据、将数据写入单元格、保存 excel 文件等)。pywin32您可以使用的命令镜像Excel VBA 命令,尽管使用 python 语法。
xlwings是(除其他外)围绕pywin32. 它介绍了几种简洁而强大的方法。一个例子是将excel单元格范围直接转换为numpy数组或pandas数据帧的方法(反之亦然)。
xlwings和之间的根本区别在于,openpyxl前者需要在您的计算机上安装 MS Excel,而后者则不需要。
| 归档时间: |
|
| 查看次数: |
7944 次 |
| 最近记录: |