不过在回答之前,我先提供一下Python读取xlsx文件报错:xlrd.biffh.XLRDError: Excel xlsx file; not supported问题解决
的背景和原因:
问题背景:
我们使用Python操作xlsx文件时,有时候会遇到一个奇怪的错误——"xlrd.biffh.XLRDError: Excel xlsx file; not supported",这种情况可能会令初学者非常困惑,特别是你的代码可以正常操作xls后缀的Excel文件,但无法处理同样内容的xlsx后缀的文件。那么这个错误到底是怎么回事儿呢?
问题原因:
其实,这个问题的根本原因就在于,xlsx文件格式的改变。在Excel 2007之前,可以使用xls后缀的文件格式进行存储,但是在Excel 2007之后,Microsoft将默认文件格式更改为.xlsx格式。为了避免向后兼容问题,xlrd库不再支持.xlsx文件格式,只支持.xls文件格式。可以使用OpenPyXL库读取.xlsx文件。以上就是该问题的原因所在。
接下来就是该问题的具体解决方案。第一个示例:
示例1:以xlrd库为例
使用xlrd库读取.xlsx文件时,会提示"xlrd.biffh.XLRDError: Excel xlsx file; not supported"错误,这时候我们需要通过OpenPyXL库来优雅地解决这个问题。
首先,我们需要安装OpenPyXL库。你可以通过以下命令在终端中安装它:
pip install openpyxl
然后,我们就可以使用以下代码来读取.xlsx文件:
import openpyxl
wb = openpyxl.load_workbook('example.xlsx') # 实例化
sheet = wb.get_sheet_by_name('Sheet1') # 选择工作表
for i in range(1, sheet.max_row + 1): # 遍历行
for j in range(1, sheet.max_column + 1): # 遍历列
print(sheet.cell(row=i, column=j).value) # 输出单元格的值
以上就是使用OpenPyXL库来读取.xlsx文件的示例代码,我们可以发现,和使用xlrd库进行.xlsx文件读取时代码相比较,使用OpenPyXL库的代码更简洁、优雅。同时,这种方式还支持早期版本的Excel文件,如.xls和.xlsm。
第二个示例:
示例2:使用pandas库
pandas提供了一种非常直接的方式来读取.xlsx文件,能够灵活地处理文件中的数据,以及对数据进行切片和过滤。如果你有大量的数据需要进行操作,那么pandas库就是最佳选择。
我们可以使用以下代码来读取.xlsx文件:
import pandas as pd
df = pd.read_excel('example.xlsx',sheet_name = 'Sheet1') # 读取
print(df) # 输出
以上就是使用pandas库来读取.xlsx文件的示例代码。我们可以看到,pandas底层其实也是使用OpenPyXL库来实现读取,只不过它把底层实现封装起来,提供了更高的代码易用性和可读性。
总结:
通过以上两个示例,我们可以知道,当我们需要使用Python来读取.xlsx文件时,即使你习惯于使用xlrd库也无法避免出现"xlrd.biffh.XLRDError: Excel xlsx file; not supported"的问题。因此我们可以使用OpenPyXL库或者pandas库来解决这个问题。同时,这两种方法都十分简洁、易用,无论从代码可读性还是代码实现难度上都更优秀。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python读取xlsx文件报错:xlrd.biffh.XLRDError: Excel xlsx file;not supported问题解决 - Python技术站