0

使用 xlwt 写入 excel 文件时收到此消息:

行索引 (u'RN') 不是范围内的 int (65536)

抛出错误的行来自这里:

sheet.write(x,fieldKey, row.OBJECTID)

x我设置的用于设置行值的计数器在哪里,fieldKey而另一个用于设置列值的计数器在哪里。

我不知道为什么会收到此消息,因为值 (u'RN') 是一个字符串值,但它告诉我它不是范围内的 int (65536)。我相信范围(65536)是excel表的极限。同样,我只写了 18 条记录,所以我不明白为什么会出现这个错误。任何人都可以帮忙吗?

谢谢,迈克

4

4 回答 4

4

这是因为您不能写入超过 65536 行的 excel。(您现在可以采用 xlsx 格式)。我有同样的问题,试试 .to_csv()

于 2014-07-25T20:38:36.913 回答
1

您得到的错误是因为x(行索引)不是数字,而是字符串。检查您传递给sheet.write方法的值;前两个必须是数字(在拨打电话之前尝试打印它们)。

于 2013-07-12T22:38:04.327 回答
1

根据这个 SO post到 sheet.write 的参数应该是 ycoord,xcoord,value

所以它应该类似于 sheet.write(0,0,answer1)

根据回复编辑。

于 2013-07-12T22:30:07.043 回答
0

您可以在 def init (self, rowx, parent_sheet) 内的 row.py 中更改限制,例如将其设为 x2:

if not (isinstance(rowx, int) and 0 <= rowx <= 131071):

从改变

if not (isinstance(rowx, int) and 0 <= rowx <= 65536):
于 2013-09-09T10:26:58.080 回答