Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python xlwt:求和函数最大参数限制?_Python_Excel_Xlwt - Fatal编程技术网

Python xlwt:求和函数最大参数限制?

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

使用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
的最大参数

是否有人知道是否有某种变通方法,以便我可以在需要时使用任意数量的参数,或者出于某种原因,它不合适

另外,在使用
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在我写了一个问题之后,我实际上正在考虑这个问题。我试试看,谢谢。