Python xlwt:求和函数最大参数限制?
使用xlwt库生成excel文件时遇到此错误:Python xlwt:求和函数最大参数限制?,python,excel,xlwt,Python,Excel,Xlwt,使用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.ex
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
的最大参数
是否有人知道是否有某种变通方法,以便我可以在需要时使用任意数量的参数,或者出于某种原因,它不合适
另外,在使用sum
函数时,我可以直接在excel
或calc
上使用任意数量的参数(通过测试,如果有,至少没有达到该限制)xlwt只是对.xls文件中的sum
函数强制执行excel的参数限制。实际上,这是任何Excel函数的绝对最大值,而不仅仅是SUM
。如果xlwt允许超过30,那么根据Excel本身,它生成的工作簿将无效
下面显示了一些变通方法,并对其进行了说明
请注意,30参数限制适用于旧版本的Excel。使用a将限制增加到255。要生成更新的Excel工作簿,请使用而不是xlwt。请参阅比较Excel 2003(.xls)和2010(.xlsx)的限制。使用嵌套的
SUM
s如何SUM(SUM(1,2,…,30),SUM(31,32,…)
@Rawing在我写了一个问题之后,我实际上正在考虑这个问题。我试试看,谢谢。