本文编写于 1379 天前,最后修改于 1379 天前,其中某些信息可能已经过时。
xlwt 超过 65536 条数据如何写入 xlsx
原因
今天使用 python 的 xlwt 模块进行数据处理工作,第一次遇到了如下错误
ValueError: row index was 65536, not allowed by .xls format
才知道 xls 是只支持 65536 行的内容的,如果要处理更多的数据就不能用 xlwt 模块
解决方案
- 分 sheet,一到 65536 就分第二个 sheet
- 使用 xlsx 格式,使用 openpyxl 扩展实现相关功能
openpyxl 的使用方法
openpyxl 最多支持 1048576 行单表数据,很适合我们的项目
安装 openpyxl
pip install openpyxl
使用 openpyxl
import openpyxl
def readExel():
filename = r'D:\test.xlsx'
inwb = openpyxl.load_workbook(filename) # 读文件
sheetnames = inwb.get_sheet_names() # 获取读文件中所有的sheet,通过名字的方式
ws = inwb.get_sheet_by_name(sheetnames[0]) # 获取第一个sheet内容
# 获取sheet的最大行数和列数
rows = ws.max_row
cols = ws.max_column
for r in range(1,rows):
for c in range(1,cols):
print(ws.cell(r,c).value)
if r==10:
break
def writeExcel():
outwb = openpyxl.Workbook() # 打开一个将写的文件
outws = outwb.create_sheet(index=0) # 在将写的文件创建sheet
for row in range(1,70000):
for col in range(1,4):
outws.cell(row, col).value = row*2 # 写文件
print(row)
saveExcel = "D:\\test2.xlsx"
outwb.save(saveExcel) # 一定要记得保存
然后就知道怎么使用了