首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新.xlsm文件值python

更新.xlsm文件值python
EN

Stack Overflow用户
提问于 2017-07-26 17:30:35
回答 2查看 2.1K关注 0票数 1

我有一个.xlsm文件作为参考模板。我想使用python从一个.csv文件更新这个.xlsm文件的值。

模板.xlsm ->使用.csv更新值

无效之处:我尝试使用pandas.to_excel方法。但在我写入工作表后,.xlsm文件被损坏。

有人能给我指个方向吗?

EN

回答 2

Stack Overflow用户

发布于 2017-07-26 17:46:10

openpyxl支持xlsm文件。

代码语言:javascript
复制
from openpyxl import load_workbook
wb2 = load_workbook('test.xlsm', keep_vba=True)
update(wb2, csvfile.csv) # this is where you need to work according to your need.
wb.save('new_document.xlsm')
wb.close()

https://openpyxl.readthedocs.io/en/default/tutorial.html

票数 2
EN

Stack Overflow用户

发布于 2018-02-20 18:55:02

也许可以尝试一下xlwings,使用类似这样的东西?

代码语言:javascript
复制
def update(workbook, csv_file):
    ws = workbook.sheets[2]
    ws.range('B14').value = 155

from xlwings import Book
wb = Book(r'test.xlsm')
update(wb, csv_file)
wb.save('test1.xlsm')
wb.close()

这是更新xlsm文件的最佳工具,因为它使用WindowsAPI,并且宏会在发生变化的情况下触发。这意味着,它不能在Linux上工作。

当然,update函数必须做一些比更改第三个工作表中的B14单元格更有意义的事情。

欲了解更多信息,请阅读http://docs.xlwings.org/en/stable/quickstart.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45322890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档