XLSXWriter公式跨多个列

时间:2016-12-27 21:57:30

标签: python-3.x xlsxwriter

我试图为电子表格中的每一列应用一个简单的乘法公式(B1 = B2 * B3 ... C1 = C2 * C3)。

我已经查看了(精彩的)xlsxwriter文档以及类似的问题:XLSXWriter Apply Formula Across Column With Dynamic Cell Reference,但我无法让它跨多个列工作。使用循环并递增行号的值可以轻松地向下移动单个列,但是我在一行(多列)中应用相同的概念时遇到了麻烦。

我使用xl_rowcol_to_cell()获取电子表格中最终单元格的A1表示法(因为它每次都会有所不同),但我无法弄清楚如何将这些变量插入可行的公式或数组公式。

cell1 = xl_rowcol_to_cell(1, total_columns - 1)
cell2 = xl_rowcol_to_cell(2, total_columns - 1)
cell3 = xl_rowcol_to_cell(3, total_columns - 1)

我在想这样的事情:

worksheet.write_array_formula('B1:%s', '{=PRODUCT(B2:%s,B3:%s)}' % (cell1, cell2, cell3))

但是我一直遇到字符串格式化问题,当我尝试插入实际值而不是使用字符串格式时,我会从Excel中获取垃圾。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

我误解了如何使用数组公式。我链接的问题有足够的信息来解决我的问题:

for col_num in range(1, total_columns):
    worksheet.write_formula(1, col_num, '=B2:%s*B3:%s' % (cell2, cell3))