与其他组件比较

Pandas读取Excel的替代方案(无需使用Interop)| IronXL for Python

查克尼特·宾
查克尼特·宾
2024年四月3日
分享:

Excel 文件在数据分析和处理任务中无处不在,是存储和组织表格数据的便捷方法。 在Python中,有多个库可用于读取Excel文件,每个库都有其自己的功能和特性。 两个突出的选择是 Pandas 和 IronXL,它们都提供了用 Python 阅读 Excel 文件的高效方法。

在本文中,我们将比较PandasIronXL在Python中读取Excel文件的功能和性能。

Pandas - 开放源代码库

Pandas 是一个功能强大的开源数据分析和处理库,适用于 Python。 它介绍了 DataFrame 数据结构,这是一种二维标记数据结构,其中的列可能具有不同的类型。Pandas 提供广泛的数据操作功能,包括从 CSV 文件、SQL 数据库和 Excel 文件等各种来源读写数据。

Pandas 的一些主要功能包括

数据帧

Pandas 引入了 DataFrame 数据结构,它本质上是一种二维标记数据结构,其中的列可能具有不同的类型。它类似于电子表格或 SQL 表格,可以方便地对表格数据执行过滤、分组和聚合等操作。

数据处理

Pandas 提供广泛的数据处理功能,包括合并、重塑、切片、索引和数据透视。 这些操作允许用户高效地清理、转换和准备数据,以便进行分析或可视化。

时间序列功能

Pandas 为处理时间序列数据提供了强大的支持,包括日期/时间索引和重采样工具,以及处理缺失数据和时区转换的便捷方法。

与库集成

Pandas 可以与数据分析和科学计算中经常使用的各种 Python 库无缝协作,包括 NumPy、Matplotlib 和 Scikit-learn。 这种互操作性使用户能够在单一分析工作流程中利用不同库的优势。

总之,Pandas 是一款功能强大的 Python 数据处理和分析工具,广泛应用于金融、经济、生物和社会科学等各个领域。

IronXL- Python Excel 库

IronXL 是专为处理 Excel 文件而设计的 Python 库。 它提供了一个直观的 API,用于在 Python 中读取、编写和操作 Excel 文档。 IronXL.Excel 的目标是通过提供简单明了的界面简化 Excel 文件操作,并消除对 Microsoft Excel 或 Excel Interop 等外部依赖性的需求。

IronXL 的一些主要功能如下:

直观的 Python 3+ Excel 文档 API

IronXL 提供了 Python 3+ Excel 文档 API,直观易用,允许开发人员无缝读取、编辑和创建 Excel 电子表格文件。

跨平台支持

IronXL 专为 Python 3+ 设计,兼容 Windows、Mac、Linux 和云平台,可确保部署环境的灵活性。

无需 Microsoft Office 或 Excel 互操作

开发人员可以在 Python 中处理 Excel 文件,而无需安装 Microsoft Office 或处理 Excel Interop,从而简化了集成过程并最大限度地减少了依赖性。

兼容性

支持各种操作系统上的 Python 3.7+,包括 Microsoft Windows、macOS、Linux、Docker、Azure 和 AWS。 与 JetBrains PyCharm 和其他 Python IDE 等流行 IDE 兼容。

多功能工作簿处理

创建、加载、保存和导出各种格式的电子表格,包括 XLS、XLSX、XSLT、XLSM、CSV、TSV、JSON、HTML、二进制和字节阵列。

强大的工作表编辑功能

编辑元数据、设置权限和密码、创建和删除工作表、操作工作表布局、处理图像等。

高级单元格范围操作

对单元格区域执行各种操作,如排序、修剪、清除、复制、查找和替换值、设置超链接以及合并和取消合并单元格。

灵活的单元格样式

自定义单元格样式,包括字体、大小、边框、对齐方式和背景图案,并应用条件格式。

数学函数和数据格式

使用平均、求和、最小和最大等数学函数,并设置单元格数据格式,包括文本、数字、公式、日期、货币、科学、时间、布尔和自定义格式。

使用 PyCharm 创建 Python 项目

首先,需要在您的机器上安装Python。请从官方Python网站安装最新的Python 3.x版本。 安装 Python 时,确保选择将 Python 添加到系统 PATH 选项,以便从命令行访问。

为了演示 Pandas 和 IronXL 在读取 Excel 文件方面的功能,我们可以使用 PyCharm 创建一个 Python 项目,PyCharm 是一个流行的 Python 集成开发环境 (IDE)。

  1. 打开 PyCharm 并创建一个新的 Python 项目。

    Pandas 读取 Excel 替代方法(不使用 Interop) IronXL for Python:图1 - 创建一个新的PyCharm项目

  2. 项目配置如下:

    • 为项目命名。 在这种情况下 "pythonReadExcel"

    • 选择项目所需的位置

    • 选择口译类型:项目译文

    • 选择 Python 版本

    Pandas 读取 Excel 替代方法(不使用 Interop) IronXL for Python:图2 - 配置项目名称、解释器类型和Python版本

  3. 单击 "创建 "创建项目。

使用 pip 安装 Pandas 和 IronXL

安装 Pandas

要在您的项目中安装 Pandas,可以按照以下步骤进行:

  1. 打开命令提示符或终端:在 PyCharm 中,依次选择视图->工具窗口->终端。

    Pandas 读取 Excel 的替代方案(无需使用 Interop) IronXL for Python:图 3 - 打开终端

  2. 通过 pip 安装 Pandas:可以使用 pip 包管理器安装 Pandas。 在终端中运行以下命令:
    pip install pandas

此命令从Python软件包索引(PyPI)安装Pandas库及其依赖项。

Pandas 读取 Excel 替代方法(不使用 Interop) IronXL for Python:图 4 - 安装 Pandas 后的控制台输出

  1. 通过 pip 安装 OpenPyXL:OpenPyXL 是一个帮助读取和写入 Excel 文件的库。 它是 Pandas 使用的依赖项之一。 安装 Pandas 时,如果尚未安装 OpenPyXL,则会自动安装。 如果尚未安装,您可以在终端中使用以下命令进行安装:
pip install openpyxl

安装 IronXL

要在 Python 项目中安装 IronXL,请按照以下步骤操作:

  1. 确保先决条件:在安装IronXL之前,请确保您的系统上已安装必要的先决条件:

    .NET 6.0 SDK:IronXL 依赖于 IronXL .NET 库,特别是 .NET 6.0,作为其基础技术。 确保您的机器上已安装.NET 6.0 SDK。您可以从官方.NET网站下载。

  2. 打开命令提示符或终端:和之前一样操作。

  3. 通过 pip 安装 IronXL:可以使用 pip 包管理器安装 IronXL。 运行以下命令
pip install IronXL

此命令将从Python包索引(PyPI)收集、下载并安装IronXL库及其依赖项。

Pandas 读取 Excel 的替代方案(不使用 Interop) IronXL for Python: 图5 - 安装 IronXL 的控制台输出

使用 Pandas 和 IronXL 阅读 Excel 文件

一切准备就绪后,我们将开始使用这两个库读取 Excel 文件。 我们要阅读的 Excel 演示文件有以下值,标题行分别为 Name、Marks 和 Res:

Pandas 读取 Excel 的替代方案(不使用 Interop) IronXL for Python: 图 6 - 示例 Excel 表

使用 Pandas

步骤 1

导入Pandas库并使用read_excel()函数从Excel文件中读取列数据。

import pandas as pd
# Read the Excel file
df = pd.read_excel("file.xlsx")
PYTHON

使用 Pandas 的read_excel()函数时,您可以根据需要指定多个选项以进行显示:

header:指定要在 Excel 文件中用作列名的行。 您可以将其设置为None以表示没有标题行,或者提供一个整数来指示行号。 如果跳过,页眉将设置为 bool 默认值 true,第一行位置将显示为页眉行标签。

index_col:指定将哪个或哪些列用作DataFrame的索引。 您可以传递单列名称或列索引。 您也可以通过列名或列索引列表来创建 MultiIndex。

sheet_name:指定从 Excel 文件读取的工作表。您可以提供工作表名称作为字符串,或作为表示从零开始计数的工作表位置的整数。

usecols:指定从 Excel 文件中读取哪些列。您可以传递单个列名或列索引。 您也可以通过列名或列索引列表来读取特定列。

dtype:指定列的数据类型。 您可以传递一个字典,其中键是列名或列索引,值是所需的数据类型。

转换器:指定应用于列的函数以进行自定义解析。 您可以传递一个字典,其中键是列名或列索引,值是函数。

na_values:指定要识别为NaN(非数字)值的其他字符串。 您可以传递一个字符串列表,将其视为 NaN。

parse_dates:指定要解析为日期的列。 您可以传递单列名称或列索引。 或者,您也可以通过列名或索引列表来解析日期。

date_parser:指定一个用于解析日期的函数。 您可以传递一个接受字符串并返回日期时间对象的函数。

skiprows:指定在 Excel 文件开头需要跳过的行数。

在使用 Pandas 阅读 Excel 文件时,这些选项提供了灵活性,使您可以根据具体要求定制阅读过程。

第二步

显示 DataFrame 的内容。

print(df)
PYTHON

以下是上述代码的输出结果:

Pandas 读取 Excel 的替代方案(不使用 Interop) IronXL for Python:图 7 - 运行 Pandas 代码的输出

使用IronXL

步骤 1:导入 IronXL 库并使用 WorkBook.Load() 方法加载 Excel 文件。在 Load 方法的参数中,您可以传递有效的文件 URL、本地文件路径对象,或文件名(如果它与脚本在同一目录中)。

from ironxl import WorkBook
# Load the Excel file like object
workbook = WorkBook.Load("file.xlsx")
PYTHON

步骤 2:使用 IronXL,您可以请求多个工作表,还可以打印列标签。 访问工作表和单元格,读取列中存储的数据。 单元格可以是任何数据类型,如数字列或字符串列。 通过使用 IntValue 属性将字符串列解析为数值,可将单元格值转换为 int,反之亦然。

# Access the first worksheet
# Loads the first sheet from list of int default worksheets
worksheet = workbook.DefaultWorkSheet
# Select a cell and return the converted value
cell_value = worksheet ["A2"].IntValue
print(cell_value)
# Read from the entire worksheet elegantly.
for cell in worksheet:
    print("Cell {} has value '{}'".format(cell.AddressString, cell.Text))
PYTHON

以下是上述代码的输出结果,其正确的显示格式展示了 IronXL 的多功能性:

Pandas 读取 Excel 的替代方案(不使用 Interop) IronXL for Python: 图 8 - 来自 IronXL 代码的控制台输出

有关处理Excel文件的更多信息,请访问此代码示例页面。

结论

总之,Pandas 和 IronXL 都提供了在 Python 中读取 Excel 文件的有效方法。 然而,与 Pandas 相比,IronXL.Excel 具有若干优势,尤其是在易用性、性能和专门的 Excel 处理能力方面。 IronXL.Excel 直观的 API 和全面的功能使其成为需要大量 Excel 操作任务的项目的上佳选择。

此外,IronXL.Excel 无需 Microsoft Excel 或 Excel Interop 等外部依赖项,从而简化了开发流程,增强了跨不同平台的可移植性。 因此,对于寻求稳健高效的 Excel 文件操作解决方案的 Python 开发人员来说,IronXL.Excel 是首选,与 Pandas 相比,它提供了更好的设施和增强的功能。 有关IronXL的更多详细信息,请访问此文档页面。

IronXL 为您的 Python 项目提供免费试用,以测试其功能和可行性。 该试用版允许开发人员探索 IronXL 提供的全部特性和功能,而无需预先作出任何财务承诺。 无论您是考虑将 IronXL 用于数据导入/导出任务、报告生成还是数据分析,免费试用版都为您提供了一个评估其性能和是否适合您特定要求的机会。

有关许可选项的更多信息和下载免费试用版,请访问IronXL网站的许可页面。 在这里,您可以找到有关许可条款的详细信息,包括商业使用和支持选项。 要开始使用IronXL并亲身体验其优势,请从此处下载该库。

查克尼特·宾
软件工程师
Chaknith 负责 IronXL 和 IronBarcode 的工作。他在 C# 和 .NET 方面拥有深厚的专业知识,帮助改进软件并支持客户。他从用户互动中获得的洞察力,有助于提升产品、文档和整体体验。
< 前一页
OpenpyXL Python与IronXL Python的比较

准备开始了吗? 版本: 2025.4 刚刚发布

查看许可证 >