在Python中计算Excel公式

1 投票
6 回答
14357 浏览
提问于 2025-04-15 12:51

我想用Python在Excel里插入一个计算。一般来说,可以通过把一个公式字符串放到相关的单元格里来实现。不过,如果我需要对整列进行多次计算,公式就得为每个单元格单独更新。比如说,如果我想计算两个单元格的和,那么对于单元格C(k),计算就是A(k)+B(k)。在Excel里,可以先计算C1=A1+B1,然后通过鼠标拖动C1向下,就能自动扩展这个计算。

我的问题是:用Python能不能做到这一点?也就是说,只在一个单元格里定义一个公式,然后利用Excel的功能把这个计算扩展到整列或整行?

谢谢大家,

Sasha

6 个回答

0

Sasha,

把你的宏转换成Python代码后,代码大概是这样的:

startCell = mySheet.Range("M6")
wholeRange = mySheet.Range("M6:M592")
startCell.FormulaR1C1 = "=R[-1]C[-7]/RC[-10]*R[-1]C"
startCell.AutoFill(Destination=wholeRange)

我还没测试过,但我在工作中经常写这个。如果有问题请告诉我。

0

如果你在用COM绑定的话,你可以直接在Excel里录制一个宏,然后把它转换成Python代码。
如果你在用xlwt库,那就得用普通的循环来写Python代码了。

3

正如Roberto提到的,你可以使用xlwt这个库,配合一个可靠的循环来实现:

import xlwt

w = xlwt.Workbook()
ws = w.add_sheet('mysheet')

for i in range(10):
    ws.write(i, 0, i)
    ws.write(i, 1, i+1)
    ws.write(i, 2, xlwt.Formula("$A$%d+$B$%d" % (i+1, i+1)))

w.save('myworkbook.xls')

撰写回答