Python错误:行索引不是范围内的int(65536)

时间:2013-07-12 22:24:50

标签: python int

使用xlwt:

写入excel文件时收到此消息
  

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

抛出错误的一行来自这里:

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

x是一个计数器,我设置为设置行值,fieldKey是设置列值的另一个计数器。

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

谢谢, 麦克

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

根据this SO post,sheet.write的args应该是ycoord,xcoord,value

所以它应该像sheet.write(0,0,answer1)

根据回复进行编辑。

答案 2 :(得分:1)

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

答案 3 :(得分: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):