当前位置: 代码迷 >> 综合 >> xlwt 写表出错 row index was 65536, not allowed by .xls format
  详细解决方案

xlwt 写表出错 row index was 65536, not allowed by .xls format

热度:23   发布时间:2023-12-17 16:53:15.0

写了个自动读取文件,然后写入Excel表的程序,结果每个文件写入65536条数据后就报错

查了下文档发现xlrd 和 xlwt 是python中用来处理 xls 文件的函数,其单个 sheet 限制最大行数为65535,因此,当读写数据量超出时就会出现这种错误, 官方代码如下:

 

解决方法就是使用 openpyxl, 它的最大处理行数好像有1百多万,这个已经足够了,估计100万的Excel打开不知道得卡到什么程度

pip install openpyxl -i http://pypi.doubanio.com/simple

代码改写

def add_excel():workbook = openpyxl.Workbook()# 不指定index,数据放在第二张表中worksheet = workbook.create_sheet(title="data", index=0)with open("data.txt", "rb") as f:data = f.readlines()num = 1index = 1for i in data:info = i.decode("utf-8").split("\t")# 需要注意,行和列都是从1开始,而xlwt是从0开始worksheet.cell(num, 1, info[0])worksheet.cell(num, 2, info[1].replace("\n", ""))num += 1if num > 20:workbook.save("S{}.xlsx".format(index))# 再次创建对象workbook = openpyxl.Workbook()worksheet = workbook.create_sheet(title="data", index=0)num = 1index += 1

 

  相关解决方案