Python读取xlsx文件报错:xlrd.biffh.XLRDError: Excel xlsx file;not supported问题解决

不过在回答之前,我先提供一下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技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • Python tkinter库图形绘制例子分享

    Python tkinter库图形绘制例子分享 简介 Python的Tkinter是Python中应用最广泛的GUI图形库之一,它提供了创建窗口和控件的简单方法。其中的Canvas控件是用于绘制图形的核心控件,它支持绘制直线、矩形、椭圆、多边形等基本图形,同时也能够加载图片和绘制文本等操作。在本文中,我们将分享一些使用Tkinter库进行图形绘制的例子,供大…

    python 2023年5月19日
    00
  • Python利用PyExecJS库执行JS函数的案例分析

    下面是详细讲解“Python利用PyExecJS库执行JS函数的案例分析”的完整攻略。 1. PyExecJS库简介 PyExecJS是一个运行不同JavaScript实现的Python库,它提供了一种简洁的方式,在Python中调用JavaScript代码。通过它,我们可以让Python调用JavaScript函数,从而实现更复杂的功能。PyExecJS通…

    python 2023年5月18日
    00
  • python自动发送测试报告邮件功能的实现

    下面是详细的攻略: 1. 为什么需要自动发送测试报告邮件 在开发过程中,我们经常需要进行大量的自动化测试用例。为了方便测试人员、开发人员以及其他人员查看测试结果,我们常常需要将测试报告通过邮件发送给相关人员。但是手动发送既费时间、又容易出现手误、遗漏等问题,为了解决这个问题,我们可以采用 Python 编写自动发送测试报告邮件的脚本并配合 CI/CD 工具实…

    python 2023年5月31日
    00
  • Python解决爬虫程序卡死问题

    在Python爬虫程序中,有时候我们会遇到一些问题,比如程序卡死、请求超时等。这些问题会导致程序无法正常运行响我们的爬虫效率。本文将介绍如何使用Python的一些库来解决这些问题。 问题一:程序卡死 我们爬取的网站响应时间过长或者网络不稳定时,程序可能会卡死。这种情况下,我们可以使用Python的multiprocessing来创建一个子进程来执行需要限的代…

    python 2023年5月13日
    00
  • Python HTTP库 requests 的简单使用详情

    以下是关于Python HTTP库requests的简单使用详情的攻略: Python HTTP库requests的简单使用详情 requests是一个流行的HTTP库,用于向Web服务器发送HTTP请求和接响应。以下是Python HTTP库requests的简单使用详情的攻略: 发送GET请求 以下是使用requests库发送GET请求的示例: impo…

    python 2023年5月14日
    00
  • Python内置函数Type()函数一个有趣的用法

    Python内置函数type()函数的主要用途是返回对象的类型。但是,Type()函数还可以用于实现一些有趣的功能,其中之一是检查对象是否为特定类型的值。在这里,我们将讨论这种功能并提供一些示例说明。 检查对象类型 type()函数可以帮助我们检查一个Python对象的类型。例如,考虑下面的代码: number = 10 if type(number) ==…

    python 2023年6月5日
    00
  • 用Python在Excel里画出蒙娜丽莎的方法示例

    当使用Python处理数据和统计分析时,Excel是一个非常重要的工具。在Excel中,绘制图表是一种常见的数据可视化方法。Python的pandas、openpyxl等库可以方便地处理Excel数据和图表绘制。下面是一个用Python在Excel中绘制蒙娜丽莎的方法示例。 准备数据 在Excel中绘制图表需要准备数据。这里我们使用pandas库中的Data…

    python 2023年5月18日
    00
  • Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法

    在Python编程过程中,我们可能会遇到各种错误,例如TypeError: ‘NoneType’ object is not iterable。这个错误通常是由于我们尝试迭一个None对象而引起的。以下是解决这个错误的完整攻略: 1. 检查变量是否为None 在Python编程程中,我们应该始终检查变量是否为None。如果我们尝试迭代一个None对象会出现T…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部