我有一个.xlsm文件作为参考模板。我想使用.csv文件中的python更新此.xlsm文件的值。
template .xlsm ---->使用.csv
更新值什么没效果: 我尝试使用pandas.to_excel方法。但是在写入工作表后,.xlsm文件被破坏了。
有人可以指出我正确的方向吗?
答案 0 :(得分:0)
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()
答案 1 :(得分:0)
也许尝试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
函数必须做的事情比改变第3张中的B14单元更有意义。