问题描述
在python中用 xlwt
输出 xls 文件,报错如下:
ValueError: row index was 65536, not allowed by .xls format
解决方法
xlrd
和 xlwt
是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’ 命名。