python - xlrd.biffh.XLRDError:Excel xlsx 文件;不支持
问题描述
我正在尝试使用pandas.read_excel
xlrd 库读取启用宏的 Excel 工作表。它在本地运行良好,但是当我尝试将其推送到 PCF 中时,出现此错误:
2020-12-11T21:09:53.441+05:30 [APP/PROC/WEB/0] [ERR] df1=pd.read_excel(os.path.join(APP_PATH, os.path.join("Data", "aug_latest.xlsm")),sheet_name=None)
2020-12-11T21:09:53.441+05:30 [APP/PROC/WEB/0] [ERR] return open_workbook(filepath_or_buffer)
2020-12-11T21:09:53.441+05:30 [APP/PROC/WEB/0] [ERR] File "/home/vcap/deps/0/python/lib/python3.8/site-packages/xlrd/__init__.py", line 170, in open_workbook
2020-12-11T21:09:53.441+05:30 [APP/PROC/WEB/0] [ERR] raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported')
2020-12-11T21:09:53.441+05:30 [APP/PROC/WEB/0] [ERR] xlrd.biffh.XLRDError: Excel xlsx file; not supported
如何解决此错误?
解决方案
如发布电子邮件中所述,链接到发布推文,并在文档首页上出现的橙色大警告中注明,并且在存储库的自述文件和pypi 上的发布中橙色较少,但仍然存在:
xlrd 已明确删除对 xls 文件以外的任何内容的支持。
在您的情况下,解决方案是:
- 确保您使用的是最新版本的 Pandas,至少 1.0.1,最好是最新版本。1.2会让他更清楚。
- 安装
openpyxl
:https ://openpyxl.readthedocs.io/en/stable/ - 将您的熊猫代码更改为:
df1 = pd.read_excel( os.path.join(APP_PATH, "Data", "aug_latest.xlsm"), engine='openpyxl', )
推荐阅读
- google-cloud-platform - 在特定域上执行 cloud_api web_detection 搜索
- python - 计算文档中的标记
- reactjs - React - 根据类外的变量更新类中的值
- python - 使用python从excel表中提取超链接URL
- node.js - 如何从猫鼬中的子对象获取集合详细信息
- php - PHP Mysql 获取表上次更新时间和日期
- javascript - 验证电子邮件,添加eventlistener keyup 功能
- java - listFiles 的方法引用
- json - 在 Spark Scala 中使用 blob 元素编写 JSON 字符串数组
- bash - 在 PostgreSQL 12 上使用单个 CLI 命令终止所有打开的连接