有没有办法用Python编辑现有的Excel文件而不破坏公式?
我想编辑几个Excel文件(.xls),但是不想改变其他的内容。目前我找到的最接近的办法是使用xlrd、xlwt和xlutils这几个模块。不过,这些模块有个问题,就是xlrd在读取的时候会计算公式,然后把结果放到单元格里。有没有人知道有什么办法可以保留这些公式,这样我就可以用xlwt写入文件而不丢失它们?我大部分的经验是在Python和CLISP上,但如果有其他语言支持得更好,我也能很快学会。谢谢大家的帮助!
4 个回答
1
目前,xlrd这个库是无法读取Excel中的公式的。它不是说它能计算公式的结果,而是根本就不读取这些公式。
现在,最好的办法是通过编程来控制正在运行的Excel程序,可以使用pywin32、Visual Basic或者VBScript(或者其他一些与微软兼容的语言,这些语言有COM接口)。如果你不能运行Excel,那么你也可以尝试用OpenOffice.org来做类似的事情。
1
我之前用过 xlwt.Formula
这个功能,可以把超链接放进单元格里。我想它也可以用在其他公式上。
更新:这是我在一个项目中找到的代码片段:
link = xlwt.Formula('HYPERLINK("%s";"View Details")' % url)
sheet.write(row, col, link)
10
我也遇到过同样的问题……最后我找到了下面这个模块:
from openpyxl import load_workbook
def Write_Workbook():
wb = load_workbook(path)
ws = wb.get_sheet_by_name("Sheet_name")
c = ws.cell(row = 2, column = 1)
c.value = Some_value
wb.save(path)
==> 这样做后,我的文件保存时保留了之前插入的所有公式。
希望这对你有帮助!