如何使用公式从Excel表格中的其他字段计算值

我使用Python的xlrd包生成我的Excel报告。 对于一些领域来说,它们是来自其他领域的计算。 我在用着

 worksheet.write(1, 2, '178', formatting ) worksheet.write(1, 3, '100', formatting ) 

(1,4)SUM of (1,2) and (1,3)

我可以这样做,如果我使用: worksheet.write(1, 4, '=SUM(A1,B1)', formatting )

但在我的情况下,我使用的是数字(col, row)而不是字母(A1)

我试过chr(1)+':1' - chr(1)+':2'

但似乎我得到的字母不反映数字。

任何想法将不胜感激!

我现在使用的解决scheme是

 value1 = '178' value2 = '100' worksheet.write(1, 2, value1, formatting ) worksheet.write(1, 3, value2, formatting ) worksheet.write(1, 4, value1+value2 , formatting ) 

但正如你所看到的, I'm not using built in excel formulas ,Excel用户不会看到价值来自哪里。 像什么是使用的calculation used? 。 正好为财务部门。

谢谢!

这是一个简单的迭代版本,它应该处理任意的列号,从这个答案中的C#代码改编而来:

如何将列号(如127)转换为Excel列(如AA)

 def column_label(column_number): column_labels = [] column_number = column_number + 1 while column_number > 0: column_number, modulo = divmod(column_number - 1, 26) column_labels.append(string.uppercase[modulo]) return ''.join(reversed(column_labels)) 

这需要一个0索引的列号,比如那些xlrd和xlwt的用法。 我不喜欢在构build名称之前将其转换为1索引,但在replace之前,我需要更多地考虑algorithm。

chr(65)=A ASCII,所以你可能需要添加64到你的列。 如果你超越了第26列,这当然会中断。