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

读取.xls文件正常,在写.xls文件,pd.to_excel()时候会报错

原因:写入的文件行数大于65536

Pandas 读取 Excel 文件的引擎是 xlrd ,xlrd 虽然同时支持 .xlsx 和 .xls 两种文件格式,但是在源码文件 xlrd/sheet.py 中限制了读取的 Excel 文件行数必须小于 65536,列数必须小于 256。

xlrd和xlwt处理的是xls文件,单个sheet最大行数是65535,如果有更大需要的,建议使用openpyxl函数,最大行数达到1048576。
如果数据量超过65535就会遇到:ValueError: row index was 65536, not allowed by .xls format

解决:

方法1: 直接使用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) # 一定要记得保存

方法2:Pandas 的 read_excel 方法中,有 engine 字段,可以指定所使用的处理 Excel 文件的引擎,填入 openpyxl ,再读取文件就可以了。

import pandas as pd

df = pd.read_excel(‘./data.xlsx’, engine=’openpyxl’)  

pd.write( ,engine=’openpyxl’)

最新文章

  1. vs下 qt源码调试
  2. [python]pythonic的字典常用操作
  3. 《C#开发微信门户及应用》
  4. js javascript:void(0) 真正含义
  5. Python字典方法copy()和deepcopy()的区别
  6. 图片缩放时java.lang.IllegalArgumentException: pointerIndex out of range解决方案
  7. 【CSS】Beginner4:Text
  8. VLC-Android和VLC几个关键宏定义的分析
  9. 池化 - Apache Commons Pool
  10. Nginx 变量漫谈(五)
  11. BZOJ 1631: [Usaco2007 Feb]Cow Party( 最短路 )
  12. Scrollview回弹效果自定义控件
  13. ps智能对象
  14. Go 语言变量
  15. LeetCode之“动态规划”:Triangle
  16. 使用 ffmpeg nginx rtmp 搭建实时流处理平台
  17. Python中os.system和os.popen区别
  18. sql Find_IN_SET 用法
  19. 文件替换(交互式)Replace
  20. java json与map互相转换(一)

热门文章

  1. 【luoguP1840】 Color the Axis_NOI导刊2011提高(05)
  2. CF1197A
  3. Flutter移动电商实战 --(15)商品推荐区域制作
  4. 高性能高可用的微服务框架TarsGo的腾讯实践
  5. <JavaScript> 普通函数与构造函数的区别
  6. SQL-W3School-高级:SQL LEFT JOIN 关键字
  7. Swift 变量
  8. 分布式存储——Build up a High Availability Distributed Key-Value Store
  9. maven创建父项目和子项目
  10. java.lang.NoClassDefFoundError: org/springframework/aop/TargetSource