openpyxl 可能的 lambda 用法

openpyxl possible lambda usage

我试图将一个单元格的值分配为等于其他几个单元格的总和。我可以使用像

这样的两行来实现这一点
 dailycell=45
 while sheet['E' + str(dailycell)].value is not None:
                mysum+=sheet['E'+str(dailycell)].value
                sheet['B13']=mysum
                dailycell+=1

以我有限的知识,我尝试了 lambda。然后我得到各种各样的错误。我尝试了几次迭代,但 none 得到了相同的结果。

sheet['B13']=lambda weeklybudget,sheet['E'+str(dailycell)].value:weeklybudget+=sheet['E'+str(dailycell)]

有替代方案吗?

为什么不遍历整个 E 列并对值求和:

sheet["B13"] = sum(c.value or 0 for c in sheet['E'])

如果您对从哪一行开始有限制,那么只需抓取适当的切片即可:

sheet["B13"] = sum(c.value or 0 for c in sheet['E'][46:])

如果您需要在第一次出现 None 时停止求和,您将需要一些外部帮助 - 想到 itertools.takewhile()

from itertools import takewhile

sheet["B13"] = sum(c.value for c in takewhile(lambda x: x.value is not None, sheet['E'][46:]))