Python xlwt:sum函数最大参数限制?

我用xlwt库生成excel文件时遇到这个错误:

File "/usr/local/lib/python2.7/dist-packages/xlwt/ExcelFormula.py", line 17, in __init__ self.__parser.formula() File "/usr/local/lib/python2.7/dist-packages/xlwt/ExcelFormulaParser.py", line 81, in formula self.expr("V") File "/usr/local/lib/python2.7/dist-packages/xlwt/ExcelFormulaParser.py", line 88, in expr self.prec0_expr(arg_type) File "/usr/local/lib/python2.7/dist-packages/xlwt/ExcelFormulaParser.py", line 133, in prec0_expr self.prec1_expr(arg_type) File "/usr/local/lib/python2.7/dist-packages/xlwt/ExcelFormulaParser.py", line 151, in prec1_expr self.prec2_expr(arg_type) File "/usr/local/lib/python2.7/dist-packages/xlwt/ExcelFormulaParser.py", line 181, in prec2_expr self.prec3_expr(arg_type) File "/usr/local/lib/python2.7/dist-packages/xlwt/ExcelFormulaParser.py", line 210, in prec3_expr self.prec4_expr(arg_type) File "/usr/local/lib/python2.7/dist-packages/xlwt/ExcelFormulaParser.py", line 228, in prec4_expr self.prec5_expr(arg_type) File "/usr/local/lib/python2.7/dist-packages/xlwt/ExcelFormulaParser.py", line 251, in prec5_expr self.primary(arg_type) File "/usr/local/lib/python2.7/dist-packages/xlwt/ExcelFormulaParser.py", line 517, in primary raise Exception("%d parameters for function: %s" % (arg_count, func_tok.text)) Exception: 185 parameters for function: sum 

挖掘xlwt上的源代码,可以看出sum函数最多有30个参数的硬性限制。 我想知道为什么有这样的限制? 如果会有一些影响,如果它会更大?

我的xlwt excel文件生成的实现使用sum和大量的数据,它可以使用比30多的参数(因为它总结了文件的许多子部分)。

限制在这里设置:

xlwt/ExcelMagic.py

 all_funcs_by_name = { # Includes Analysis ToolPak aka ATP aka add-in aka xcall functions, # distinguished by -ve opcode. # name: (opcode, min # args, max # args, func return type, func arg types) # + in func arg types means more of the same. ... 'SUM' : ( 4, 1, 30, 'V', 'D+'), ... } 

第三个数字(30)表示函数sum最大参数。

有谁知道是否有某种解决方法,所以我可以使用任何数量的参数,如果需要或由于某种原因,它不是好的?

PS我可以直接在excelcalc上使用任意数量的参数,当使用sum函数(至less没有达到那个限制,如果有的话,通过testing)

xlwt只是在.xls文件中为SUM函数强制执行Excel的参数限制。 实际上,这是任何Excel函数的绝对最大值,而不仅仅是SUM 。 如果xlwt允许超过30个,那么根据Excel自身生成的工作簿将是无效的。

一些变通办法显示在这里和这里 。

请注意,30个参数的限制是针对旧版本的Excel。 使用更新的版本将限制增加到255.要生成较新的Excel工作簿,请使用XlsxWriter而不是xlwt。 请参阅下表,比较Excel 2003(.xls)与2010(.xlsx)的限制。