2016-12-27 117 views
1

我试图对电子表格中的每列应用简单的乘法公式(B1 = B2 * B3 ... C1 = C2 * C3)。跨越多列的XLSXWriter公式

我已阅读(奇妙)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 。

任何帮助,将不胜感激。

回答

2

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

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