有没有办法用Python编辑现有的Excel文件而不破坏公式?

0 投票
4 回答
9755 浏览
提问于 2025-04-17 03:44

我想编辑几个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)

==> 这样做后,我的文件保存时保留了之前插入的所有公式。

希望这对你有帮助!

撰写回答