openpyxl cannot read Strict Open XML Spreadsheet format: UserWarning: File contains an invalid specification for Sheet1. This will be removed(Openpyxl无法读取严格的Open XML电子表格格式:UserWarning:文件包含Sheet1的无效规范。这将被删除)
本文介绍了Openpyxl无法读取严格的Open XML电子表格格式:UserWarning:文件包含Sheet1的无效规范。这将被删除的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的几个用户(他们都使用Mac)向我的应用程序上传了一个Excel,然后应用程序拒绝了它,因为文件似乎是空的。经过一些调试后,我已经确定该文件是以Strong Open XML SpreedSheet格式保存的,而且Openpyxl(2.6.0)不会发出错误,而是向stderr打印警告。若要进行复制,请打开一个文件,添加几行,然后另存为Strong Open XML SpreedSheet(*.xlsx)格式。
import openpyxl
with open('excel_open_strict.xlsx', 'rb') as f:
workbook = openpyxl.load_workbook(filename=f)
这将打印以下警告,但不会引发任何异常:
UserWarning: File contains an invalid specification for Sheet1. This will be removed
此外,工作簿似乎没有工作表:
assert workbook.get_sheet_names() == []
我现在已经有三个Mac用户遇到了这个问题。似乎Mac有时会默认使用这种严格的Open XML SpreedSheet格式。如果这是正常情况,那么Openpyxl应该能够处理它。否则,如果Openpyxl只是抛出一个异常,那就太好了。作为一种解决办法,我似乎可以执行以下操作:
import openpyxl
with open('excel_open_strict.xlsx', 'rb') as f:
workbook = openpyxl.load_workbook(filename=f)
if not workbook.get_sheet_names():
raise Exception("The Excel was saved in an incorrect format")
推荐答案
我在使用R库Openxlsx创建的xlsx文件中遇到了类似的问题。来自一个简单的python程序的示例错误消息,用于打开文件并从片状裁剪中检索单个值:
警告(来自警告模块): 文件&C:Python38库站点-包OpenPYXL Eaderworkbook.py";,第88行 警告(消息) UserWarning:文件包含无效的裁剪规范。这将被删除我的第一个非常笨拙的解决方案:
- 使用Excel打开
- 将文件另存为*.xls,这会触发有关兼容性的警告。
- 重新另存为*.xlsx
如果您只需要阅读文件,我的第二个解决方案有效:
- 设置只读限制:
wb = load_workbook(filename = 'CAF_LTAR_crops_out_0.3.xlsx', read_only=True)
这篇关于Openpyxl无法读取严格的Open XML电子表格格式:UserWarning:文件包含Sheet1的无效规范。这将被删除的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:Openpyxl无法读取严格的Open XML电子表格格式:UserWarning:文件包含Sheet1的无效规范。这将被删除


猜你喜欢
- 如何使用PYSPARK从Spark获得批次行 2022-01-01
- 我如何卸载 PyTorch? 2022-01-01
- ";find_element_by_name(';name';)";和&QOOT;FIND_ELEMENT(BY NAME,';NAME';)";之间有什么区别? 2022-01-01
- 我如何透明地重定向一个Python导入? 2022-01-01
- 计算测试数量的Python单元测试 2022-01-01
- 使用 Cython 将 Python 链接到共享库 2022-01-01
- CTR 中的 AES 如何用于 Python 和 PyCrypto? 2022-01-01
- 检查具有纬度和经度的地理点是否在 shapefile 中 2022-01-01
- YouTube API v3 返回截断的观看记录 2022-01-01
- 使用公司代理使Python3.x Slack(松弛客户端) 2022-01-01