当前位置: 首页 > news >正文

深入解析Excel文件格式:.xls与.xlsx的差异与应用指南

        在当今的数据处理和办公自动化领域Microsoft Excel 无疑是一款极为重要的工具。

        它不仅广泛应用于日常的数据录入、计算和图表制作,而且也是数据分析、财务建模等专业

领域不可或缺的软件。Excel 的文件格式经历了多个版本的迭代,其中  .xls  和  .xlsx  是最常见的

两种格式。

        本文将深入探讨这两种格式之间的区别,并探讨它们在实际应用中的影响。

文件格式剖析

        .xls 格式:最初随 Excel 97 引入,并在后续的 Excel 2000、2002、2003 版本中得到支

持。.xls 是一种基于二进制的文件格式,它的结构较为复杂,不易被其他应用程序解析。由于其封

闭性,对文件进行直接编辑和修改存在一定难度。

        .xlsx 格式:自 Excel 2007 起成为默认的文件格式,基于 Office Open XML 标准。.xlsx 是一

种压缩的 XML 文件格式,这使得它的结构更加清晰,易于被其他应用程序读取和写入。XML 的开

放性也促进了数据交换和集成。

兼容性与功能差异

        兼容性:.xls 格式由于年代久远,不支持 Excel 2007 后引入的诸多高级功能。例如,.xls 文

件的工作表大小受限,列数最多只能达到 256 列,而行数最多为 65,536 行。而 .xlsx 格式则支持

多达 1,048,576 行和 16,384 列,极大地扩展了数据处理能力。

        功能支持:.xlsx 格式支持更多高级功能,如条件格式的高级应用、数据透视表的增强、复杂

公式的运用等。此外,.xlsx 文件还支持高级数据验证,这对于确保数据输入的准确性和一致性至

关重要。

大小、性能与安全性

        文件大小与性能:由于采用了压缩技术,.xlsx 文件通常比 .xls 文件体积更小,这在数据传输

和存储方面具有明显优势。同时,.xlsx 文件的打开和保存速度更快,这在处理大型数据集时尤为

显著。

        安全性:在安全性方面,.xlsx 格式提供了更高级别的支持。用户可以为 .xlsx 文件设置加密

和数字签名,确保数据的安全性。这对于涉及敏感信息的文件尤为重要。

在 Pandas 中的读取与应用

        在 Python 的数据处理库 Pandas 中,读取 Excel 文件是一项基本操作。下面是针对不同格

式文件的读取方法

import pandas as pd# 读取 .xls 文件df_xls = pd.read_excel('file.xls', engine='xlrd')# 读取 .xlsx 文件df_xlsx = pd.read_excel('file.xlsx', engine='openpyxl')

        随着 Pandas 和相关依赖库的更新,对文件格式的支持也在不断变化。例如, xlrd  库在

2.0.0 版本之后不再支持读取 .xlsx 文件,因此在使用 Pandas 读取 .xls 文件时,可能需要安装特

定版本的  xlrd  库。

结论

        总而言之,.xlsx 格式由于其开放性、兼容性和先进的功能,已经成为 Excel 文件处理的主流

格式。

        然而,由于历史原因和特定需求,.xls 格式仍然在一定范围内被使用。

        我在初次使用的时候遇到了这个问题

        ImportError: Missing optional dependency 'xlrd'. Install xlrd >= 2.0.1 for xls Excel

support Use pip or conda to install xlrd.

        这个错误信息表明,Pandas 在尝试读取 .xls 格式的 Excel 文件时,缺少了 xlrd 这个可选依赖

库,或者安装的 xlrd 版本不满足要求(低于 2.0.1 版本)。下面是解决这个问题的步骤

1. 安装 xlrd 库

        如果你还没有安装 xlrd,可以使用以下命令来安装(命令行 cmd ):

pip install xlrd

        如果你使用的是 Anaconda 环境,可以使用如下命令:1

conda install xlrd

2. 确保安装的是正确版本的 xlrd

        从 xlrd 2.0.0 版本开始,它不再支持读取 .xlsx 文件,但仍然支持 .xls 文件

确保安装的 xlrd 版本至少是 2.0.1,可以使用下面命令来升级到最新版本: 

pip install --upgrade xlrd

        或者对于 Anaconda 环境使用如下命令:

conda update xlrd

3. 确认 xlrd 已正确安装

        安装完成后,你可以通过以下 Python 代码来检查 xlrd 是否已经正确安装并且版本满足要求:

import xlrdprint(xlrd.__VERSION__)

        这会打印出 xlrd 的版本号,确保它至少是 2.0.1。

输出结果

94fd30847ec64ffc914b748d0770b2d8.png

4. 使用正确的引擎读取 Excel 文件

        使用 Pandasread_excel 函数时,确保我们指定了正确的引擎来读取 .xls 文件:

import pandas as pddf = pd.read_excel('file.xls', engine='xlrd')

        另外,如果我们的目的是读取 .xlsx 文件,那么我们应该使用 openpyxl 而不是 xlrd,因为

openpyxl 是用于读取和写入 .xlsx 文件的库。

        安装 openpyxl 的代码如下

pip install openpyxl

        然后在读取 .xlsx 文件指定 openpyxl 作为引擎:

df = pd.read_excel('file.xlsx', engine='openpyxl')

 

相关文章:

  • [Uninstall] 软件彻底卸载工具的下载及详细安装使用过程(附有下载文件)
  • 前端——js补充
  • 大数据毕业设计选题推荐-国潮男装微博评论数据分析系统-Hive-Hadoop-Spark
  • 大厂面试真题-介绍以下Docker的Overlay网络
  • 【AAOS】CarService -- Android汽车服务
  • 机器学习:opencv--摄像头OCR
  • ireport 5.1 中文生辟字显示不出来,生成PDF报字体找不到
  • Python爬虫之requests(二)
  • 基于SSM+Vue+MySQL的在线视频学习系统
  • 技术周刊第2期: Cursor 面临的挑战 -2024
  • 深度学习技术在流体力学中的应用与实操培训【1/3理论课程2/3实操课程】
  • python 实现random forest classifier随机森林分类器算法
  • 王道-计网
  • 工具类:JWT
  • 【Golang】Go语言字符串处理库--strings
  • [nginx文档翻译系列] 控制nginx
  • 【翻译】babel对TC39装饰器草案的实现
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Akka系列(七):Actor持久化之Akka persistence
  • C++11: atomic 头文件
  • EOS是什么
  • Java读取Properties文件的六种方法
  • Laravel 实践之路: 数据库迁移与数据填充
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • Web设计流程优化:网页效果图设计新思路
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 写代码的正确姿势
  •  一套莫尔斯电报听写、翻译系统
  • 智能网联汽车信息安全
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • mysql面试题分组并合并列
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • # Redis 入门到精通(九)-- 主从复制(1)
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C++)八皇后问题
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (补)B+树一些思想
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)ssm高校实验室 毕业设计 800008
  • (十七)、Mac 安装k8s
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)大道至简,职场上做人做事做管理
  • ./configure,make,make install的作用(转)
  • .gitignore
  • .NET Core 和 .NET Framework 中的 MEF2
  • .net mvc部分视图
  • .net wcf memory gates checking failed
  • .Net 垃圾回收机制原理(二)
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理