我正在使用xlrd来处理.xls文件,而使用openpyxl来处理.xlsx文件,这很有效.
然后我交给了表面上是.xls文件的东西,所以我尝试xlrd.open_workbook(),得到:
XLRDError: Unsupported format,or corrupt file: Expected BOF record; found '<?xml ve'
我看一下this的问题,我猜测我的文件虽然以扩展名.xls结尾,但实际上必须是.xlsx.事实上,我可以在文本编辑器中查看它:
<?xml version="1.0" encoding="UTF-8"?>
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
:
:
:
(出于隐私原因,我无法发布整个文件,但我们的分析可能不需要).
所以我猜测,如果我只是将它复制(cp)到.xlsx,我应该可以用openpyxl.load_workbook()打开它,但我得到:
BadZipfile: File is not a zip file
如果它实际上是一个xls(不太可能)但是不能用xlrd打开,并且如果它是一个xlsx,但是无法用openpyxl打开,即使我将它转换为.xlsx,该怎么办?
注意:如果我在Excel中打开.xls,将其保存为.xlsx,并使用openpyxl重试,它确实可以正常加载,但这个手动步骤并不是我执行程序时的奢侈.