解决ValueError: row index was 65536, not allowed by .xls format

解决ValueError: row index was 65536, not allowed by .xls format问题


问题描述

在python中用 xlwt 输出 xls 文件,报错如下:

ValueError: row index was 65536, not allowed by .xls format

解决方法

xlrdxlwt 是python中用来处理 xls 文件的函数,其单个 sheet 限制最大行数为65535,因此,当读写数据量超出时就会出现如上错误。
如果希望有更大的存储,建议使用 openpyxl 函数,其最大行数为1048576,存储的文件类型为 xlsx 。

import openpyxl

def writetoxlsx():
	data = open('./data.txt', 'r')
	outwb = openpyxl.Workbook()  # 打开一个将写的文件
	outws = outwb.create_sheet(index=0)  # 在将写的文件创建sheet
	
	i = 1  # 注意:'cell'函数中行列起始值为1
	for line in data:  
	    for x in range(0,len(line)):  	     
	        ws.cell(column = x+1 , row = i , value = "%s" % line[x])  
	    i += 1  
	  
    savexlsx = "./results.xlsx"
    outwb.save(savexlsx)  # 保存结果
    data.close()

补充: outwb.create_sheet()index 表示表示 sheet 序号,也可以直接用 ‘name’ 命名。


版权声明:本文为qq_24285815原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。