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

news2024/9/30 15:12:28

        在当今的数据处理和办公自动化领域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 xlrd

print(xlrd.__VERSION__)

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

输出结果

94fd30847ec64ffc914b748d0770b2d8.png

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

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

import pandas as pd

df = 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')

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2179932.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOv11改进策略【注意力机制篇】| 添加SE、CBAM、ECA、CA、Swin Transformer等注意力和多头注意力机制

前言 这篇文章带来一个经典注意力模块的汇总,虽然有些模块已经发布很久了,但后续的注意力模块也都是在此基础之上进行改进的,对于初学者来说还是有必要去学习了解一下,以加深对模块,模型的理解。 文章目录 前言一、为…

uniapp生物识别示例(人脸识别、指纹识别)

准备工作&#xff1a; mainfest.json设置勾选&#xff1a; 勾选完成后打 App自定义调试基座测试包 示例代码&#xff1a; <template><view class"content"><button v-if"supportSoterAuthenticationArray.includes(facial)" click"…

QT使用qss控制样式实现动态换肤

文章目录 设计QSS样式表动态加载QSS文件主函数调用QT提供了一种非常灵活的方式来使用QSS(Qt Style Sheet,类似于 CSS 的样式表),实现界面的动态换肤功能。QSS可以改变Qt应用程序中几乎所有可视组件的外观,包括颜色、字体、边框等。下面介绍一下如何通过QSS实现动态换肤。 设…

大模型时代的企业AI发展趋势浅析

在当前技术飞速进步的时代背景下&#xff0c;生成式人工智能与大型模型正逐渐成为推动产业变革的关键力量。随着人工智能技术的持续成熟与普及&#xff0c;其应用范围已从个人领域拓展至企业层面&#xff0c;广泛渗透至各个行业。那么&#xff0c;这些新兴技术究竟将为产业界带…

手把手教你使用YOLOv11训练自己数据集(含环境搭建 、数据集查找、模型训练)

一、前言 本文内含YOLOv11网络结构图 训练教程 推理教程 数据集获取等有关YOLOv11的内容&#xff01; 官方代码地址&#xff1a;https://github.com/ultralytics/ultralytics/tree/main/ultralytics/cfg/models/11 二、整体网络结构图 三、环境搭建 项目环境如下&#xf…

天融信运维安全审计系统 synRequest 远程命令执行漏洞复现

0x01 产品描述&#xff1a; 天融信运维安全审计系统TopSAG是基于自主知识产权NGTOS安全操作系统平台和多年网络安全防护经验积累研发而成&#xff0c;系统以4A管理理念为基础、安全代理为核心&#xff0c;在运维管理领域持续创新&#xff0c;为客户提供事前预防、事中监控、事后…

一文了解构建工具——Maven与Gradle的区别

目录 一、Maven和Gradle是什么&#xff1f; 构建工具介绍 Maven介绍 Gradle介绍 二、使用时的区别&#xff1a; 1、新建项目 Maven&#xff1a; Gradle&#xff1a; 2、配置项目 Maven&#xff1a; Gradle&#xff1a; 3、构建项目——生成项目的jar包 Gradle&…

Linux之实战命令20:split应用实例(五十四)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

【C++】692.前K个高频单词

692. 前K个高频单词 - 力扣&#xff08;LeetCode&#xff09; 思路分析&#xff1a; 使用map统计单词的次数。map是按单词从小到大排序的。对单词再按照次数从大到小排序。有两种方法&#xff1a; 将pair<string&#xff0c;int>键值对放到vector中&#xff0c;用sort排序…

【Linux系统编程】第二十五弹---Shell编程入门:打造一个简易版Shell

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、简易的shell 1.1、输出一个命令行 1.2、获取用户命令字符串 1.3、命令行字符串分割 1.4、检查命令是否是内建命令 1.5、…

LeetCode24. 两两交换链表中的节点(2024秋季每日一题 32)

给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4] 输出&#xff1a;[2,1,…

Llama微调以及Ollama部署

1 Llama微调 在基础模型的基础上&#xff0c;通过一些特定的数据集&#xff0c;将具有特定功能加在原有的模型上。 1.1 效果对比 特定数据集 未使用微调的基础模型的回答 使用微调后的回答 1.2 基础模型 基础大模型我选择Mistral-7B-v0.3-Chinese-Chat-uncensored&#x…

Label-Studio ML利用yolov8模型实现自动标注

引言 Label Studio ML 后端是一个 SDK&#xff0c;用于包装您的机器学习代码并将其转换为 Web 服务器。Web 服务器可以连接到正在运行的 Label Studio 实例&#xff0c;以自动执行标记任务。我们提供了一个示例模型库&#xff0c;您可以在自己的工作流程中使用这些模型&#x…

[Cocoa]_[初级]_[绘制文本如何设置断行方式]

场景 在开发Cocoa程序时&#xff0c;表格NSTableView是经常使用的控件。其基于View Base的视图单元格模式就是使用NSCell或其子类来控制每个单元格的呈现。当一个单元格里的文字过多时&#xff0c;需要截断超出宽度的文字&#xff0c;怎么实现&#xff1f; 说明 Cocoa下的文本…

演讲干货整理:泛能网能碳产业智能平台基于 TDengine 的升级之路

在 7 月 26 日的 TDengine 用户大会上&#xff0c;新奥数能 / 物联和数据技术召集人袁文科进行了题为《基于新一代时序数据库 TDengine 助力泛能网能碳产业智能平台底座升级》的主题演讲。他从泛能网能碳产业智能平台的业务及架构痛点出发&#xff0c;详细分享了在数据库选型、…

【多线程奇妙屋】能把进程和线程讲的这么透彻的,没有20年功夫还真不行【0基础也能看懂】

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

OpenGL ES 顶点缓冲区和布局(3)

OpenGL ES 顶点缓冲区和布局(3) 简述 顶点缓冲区的本质就是一段GPU上的显存&#xff0c;我们通过绑定顶点缓冲区的方式来将数据从CPU传到GPU。 我们之前在绘制三角形的例子中&#xff0c;我们往顶点缓冲区只传入了坐标&#xff0c;但是其实顶点是可以包含很多数据的&#xff…

指定PDF或图片多个识别区域,识别区域文字,并导出到Excel文件中

常见场景 用户有大量图片/PDF文件&#xff0c;期望能将图片/PDF中的多个区域中的文字批量识别出来&#xff0c;并导入到Excel文件中。期望工具可以批量处理、离线识别&#xff08;保证数据安全性&#xff09;。手工操作麻烦。具体场景&#xff1a;用户有工程现场照片&#xff…

xgboost cross validation

在R中使用xgboost 假设X为训练数据&#xff0c;y为label&#xff0c;为0或者1.用xgboost建立分类模型代码如下 调用caret包中的createFolds方法&#xff0c;进行10倍交叉验证 最后画出AUC曲线 library(xgboost) library(caret) library(caTools) library(pROC)set.seed(123) …

【北京迅为】《STM32MP157开发板嵌入式开发指南》- 第十一章 Linux 帮助手册讲解

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器&#xff0c;既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构&#xff0c;主频650M、1G内存、8G存储&#xff0c;核心板采用工业级板对板连接器&#xff0c;高可靠&#xff0c;牢固耐…