我有一个.xlsm文件作为参考模板。我想使用python从一个.csv文件更新这个.xlsm文件的值。
模板.xlsm ->使用.csv更新值
无效之处:我尝试使用pandas.to_excel方法。但在我写入工作表后,.xlsm文件被损坏。
有人能给我指个方向吗?
发布于 2017-07-26 17:46:10
openpyxl支持xlsm文件。
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()发布于 2018-02-20 18:55:02
也许可以尝试一下xlwings,使用类似这样的东西?
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
https://stackoverflow.com/questions/45322890
复制相似问题