今天在运行之前可以正常运行的程序,解析excel文件,代码简单示例如下:
import pandas as pd
df = pd.read_excel("F:\\1.xlsx")
# 解析文件
不过,这次却遇到了一个问题,如下图:
?第一次遇到这个错误:xlrd.biffh.XLRDError: Can't find workbook in 0LE2 compound document,在前几天程序还正常运行呢。
经过研究操作步骤,发现现象是: 当直接下载excel时,是可以读取的。使用excel打开之后,再保存,就不能再读取了。
于是,在网上查找解决方案:
首先就是安装openpyxl
sudo pip3 install openpyxl
?
然后,升级pandas:【因为python1.3.1之后,就可以自动选择XLSX引擎】
sudo pip3 install --upgrade pandas
程序修改为使用openpyxl作为引擎,示例代码如下:
import pandas as pd
df = pd.read_excel("F:\\1.xlsx", engine="openpyxl")
# 解析文件
接着执行程序,还是同样的错误。
最后,经过调查才了解到, 公司对文档自动进行了加密保护处理,只要用excel再保存,就会自动加密。 把文档打开,选择保密级别是公开,才可以正常被pandas读取。修改的示例如下: