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

yizhihongxing

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

相关文章

  • python3中超级好用的日志模块-loguru模块使用详解

    Python3中超级好用的日志模块——Loguru模块使用详解 前言 日志是每一个程序员必须掌握的技能之一。对于优秀的 Python 程序员来说,优秀的日志框架更是必不可少。Python 标准库中自带的 logging 模块就是一个强大的例子,但是使用起来也有点复杂。在这篇文章里,我们会来探讨一个比 logging 更简单易用的日志框架——Loguru。 L…

    python 2023年6月3日
    00
  • django项目用higcharts统计最近七天文章点击量

    让我详细讲解一下“Django项目用Highcharts统计最近七天文章点击量”的完整攻略。 1. 安装Highcharts 首先,我们需要在Django项目中安装Highcharts。我们可以在命令行中使用pip安装Highcharts: pip install highcharts 2. 获取文章点击量 获取最近七天文章点击量的方法可以有很多,这里给出两…

    python 2023年6月2日
    00
  • python游戏开发的五个案例分享

    Python游戏开发的五个案例分享 在本文中,我们将分享五个Python游戏开发案例,并提供详细的攻略和说明,帮助初学者快速入门。 1. 2048游戏 2048游戏是一个非常流行的数字游戏,在这个游戏中,你需要将数字方块合并到一个2048的方块中。这个游戏是使用Python和Pygame库来设计的,Pygame是一个Python游戏开发库,它可以让开发者轻松…

    python 2023年5月19日
    00
  • python并发编程多进程 模拟抢票实现过程

    Python并发编程多进程模拟抢票实现过程 什么是并发编程? 并发指处理多个事情的能力,而并发编程指同时执行多个任务的能力。在Python中,可以通过多线程、多进程和协程等方式实现并发编程。 什么是多进程? 多进程是指启动多个进程来同时执行不同的任务。与单进程相比,多进程能够实现更高的性能,因为多个进程可以在不同的CPU核心上同时运行。 模拟抢票实现过程示例…

    python 2023年5月19日
    00
  • Python全栈之推导式和生成器

    Python全栈之推导式和生成器 本文将详细讲解Python中推导式和生成器的概念,以及它们的使用方法和注意事项。 推导式 推导式是Python中一种简洁、快速生成数据结构的语法。它可以生成列表、字典、元组等数据结构。常见的推导式包括列表推导式、字典推导式和集合推导式。 列表推导式 列表推导式用于简化创建列表的语法,可以使用一行代码生成一个新的列表。其基本语…

    python 2023年6月6日
    00
  • Python random库使用方法及异常处理方案

    Python random库使用方法及异常处理方案 介绍 Python标准库中的random模块提供了生成随机数的功能。使用该模块,我们可以生成伪随机数,可以是整数、浮点数、序列元素,还可以进行随机选择、打乱序列等操作。 这篇攻略将会详细介绍random库的各种用法以及如何处理常见的异常。 生成随机整数 使用random库可以很方便地生成指定范围内的随机整数…

    python 2023年5月13日
    00
  • Python 并行化执行详细解析

    Python并行化执行是指在Python中使用多线程或多进程技术,实现并行化执行任务,提高程序的执行效率。本文将讲解Python并行化执行的详细解析,包括以下几个方面: Python多线程和多进程的区别 Python多线程的实现方法 Python多进程的实现方法 实践示例 Python多线程和多进程的区别 Python多线程和多进程都是实现并行化执行任务的方…

    python 2023年5月15日
    00
  • 使用Python读取大文件的方法

    下面是使用Python读取大文件的完整攻略: 1. 初步规划 在处理大文件时,我们需要注意以下几个方面: 使用“流式读取”方式,即不将整个文件读入内存,而是分块读取; 需要对读取的数据进行适当的处理,以避免内存占用过大; 对于无需修改的大文件,可以采用只读模式以提高效率; 如果存在文件编码问题,需要进行正确的编码转换。 知道这些后,我们就可以逐步实现读取大文…

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