openpyxl和xlwingss使用对比

一开始搜到的是openpyxl用法,满心欢喜的照着教程编写代码,但是在满足普通需求后,发现保存文件时会将WPS中的宏给清除了,这没法做啊,接着在往上搜解决办法,只找到说可以保留VBA宏的方法:

openpyxl.load_workbook(file, keep_vba=True)

参考文档

但是在WPS用的JS写的宏,这个方法不可行,只好另寻他法。

终于找到wlings支持保存Excel文件时保存宏,下面记录下两种方法的简单使用和对比。

总结:

情景/库 openpyxl xlwings
读取.xls 不支持 可以读取
保存.xls 可以保存,但是提示文件扩展名不匹配,可以看到原始数据 可以保存,但是提示文件扩展名不匹配,可以看到原始数据
读取.xlsx 可以带有样式读取 可以带有样式读取
保存.xlsx 可以带有样式保存 可以带有样式保存
读取.xlsm 可以读取,但没有宏 可以读取包含宏的表格
保存.xlsm 保存后打不开,存成 .xls想 格式宏丢失 存储后宏还在
增删行和列 支持 支持
使用建议 只操作.xlsx文件可以考虑,带宏不建议 目前感觉使用比较方便

 

使用

一、openpyxl

import openpyxl   # 使用前需要安装 命令:pip3 install openpyxl

wb = openpyxl.load_workbook("test.xlsm")   # 打开文件
ws = wb[0]  # 打开具体的 sheet,可以是数字或者名字
# 获取 sheet 表中最大行数
ws.max_row
# 获取 sheet 表中最大列数
ws.max_column
# 获取具体单元格
cell = ws.cell(row, 10)
# 获取单元格中的值
cell.value
# 修改单元格中的值
cell.value = 0
# 保存文件
wb.save(file)

 

二、xlwings

# 打开并显示 Excel 客户端,如果不想显示可将 visible 置为 False。
app = xw.App(visible=True, add_book=False)
# 打开文件
wb = app.books.open("test.xlsm")
# 获取指定 sheet,可以是数字或者名称
wb.sheets[fund]
# 获取指定单元格的值(A1)
ws[0, 0].value
# 修改指定单元格的值(A1)
ws[0, 0].value = 0
# 保存文件
wb.save(file)
# 关闭文件
wb.close()
        

 

posted @ 2023-10-18 18:56  时间在哪  阅读(270)  评论(0编辑  收藏  举报