Python高效写入Excel:多种方法及性能比较248


Python 作为一门强大的脚本语言,在数据处理方面拥有丰富的库。将 Python 处理后的数据写入 Excel 文件是常见的需求,本文将详细介绍几种常用的方法,并对它们的性能进行比较,帮助您选择最适合自己场景的方案。

常用的 Python 库主要包括 openpyxl、xlsxwriter、pandas 和 xlwt/xlrd。 它们各有优劣,选择哪个库取决于您的具体需求,例如:文件大小、读取写入速度、对不同 Excel 版本的支持以及是否需要复杂的格式化操作。

1. 使用 openpyxl 写入 Excel

openpyxl 是一个读取和写入 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库。它支持读写大部分 Excel 功能,包括样式、公式、图表等。对于复杂的 Excel 文件操作,openpyxl 是一个不错的选择。
from openpyxl import Workbook
from import Font, Alignment
# 创建一个新的工作簿
workbook = Workbook()
sheet =
# 写入数据
data = [
['Name', 'Age', 'City'],
['Alice', 25, 'New York'],
['Bob', 30, 'London'],
['Charlie', 28, 'Paris']
]
for row in data:
(row)
# 设置单元格样式
for cell in sheet['A1:C1']:
= Font(bold=True)
= Alignment(horizontal='center')
# 保存工作簿
("")

这段代码首先创建一个新的 Workbook 对象,然后选择活动的 sheet。接着,使用 `append` 方法将数据写入 sheet。最后,设置标题行的字体加粗并居中,并将结果保存到 "" 文件。

2. 使用 xlsxwriter 写入 Excel

xlsxwriter 是一个专门用于创建 Excel 文件的库,它以其速度和对格式化的良好支持而闻名。如果您需要生成包含大量数据的 Excel 文件,或者需要对文件格式进行精细控制,xlsxwriter 是一个理想的选择。
import xlsxwriter
# 创建一个新的工作簿
workbook = ('')
worksheet = workbook.add_worksheet()
# 写入数据
data = [
['Name', 'Age', 'City'],
['Alice', 25, 'New York'],
['Bob', 30, 'London'],
['Charlie', 28, 'Paris']
]
# 写入数据到单元格
row = 0
col = 0
for name, age, city in data:
(row, col, name)
(row, col + 1, age)
(row, col + 2, city)
row += 1

# 设置单元格格式
bold = workbook.add_format({'bold': True})
(0, 0, 'Name', bold)
(0, 1, 'Age', bold)
(0, 2, 'City', bold)
# 关闭工作簿
()

这段代码演示了如何使用 xlsxwriter 写入数据并设置单元格格式。与 openpyxl 不同的是,xlsxwriter 需要显式地添加格式。

3. 使用 pandas 写入 Excel

pandas 是一个强大的数据分析库,它可以方便地将 DataFrame 数据写入 Excel 文件。 pandas 利用了其他库(例如 openpyxl 或 xlsxwriter)的底层功能,提供了一种更简洁易用的接口。
import pandas as pd
# 创建 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 28],
'City': ['New York', 'London', 'Paris']}
df = (data)
# 写入 Excel 文件
df.to_excel('', sheet_name='Sheet1', index=False)

这段代码简洁地展示了如何使用 pandas 将 DataFrame 写入 Excel。`to_excel` 函数提供了丰富的选项,例如指定 sheet 名称和是否包含索引。

4. 性能比较

这三种方法的性能差异取决于数据量和所需格式的复杂度。对于小数据集,差异可能微乎其微。但对于大型数据集,xlsxwriter 通常比 openpyxl 快,而 pandas 的速度介于两者之间,因为它依赖底层库。

实际性能测试需要根据具体数据和硬件环境进行。建议在处理大型数据集之前进行基准测试,以选择最优方案。

5. 选择合适的库

选择哪个库取决于你的需求:
* openpyxl: 适用于需要处理复杂 Excel 功能(例如公式、图表、样式)的情况,以及需要读取和写入现有 Excel 文件的情况。
* xlsxwriter: 适用于需要快速生成大型 Excel 文件,并对格式化有较高要求的情况。
* pandas: 适用于需要将 DataFrame 数据写入 Excel 文件,并需要利用 pandas 其他数据处理功能的情况。其速度和功能介于前两者之间。

希望本文能够帮助您更好地理解如何使用 Python 将数据写入 Excel 文件,并根据实际情况选择最合适的库。

2025-06-30


上一篇:将Python脚本打包成可执行文件EXE:完整指南

下一篇:Python高效保存Word文件:多种方法与进阶技巧