写了个自动读取文件,然后写入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