python各种excel写入方式的速度对比

1. 导言

在Python中,操作Excel是常见的操作之一。不仅需要从Excel中读取数据,还需要将数据写入Excel中。对于大数据量的Excel文件,需要考虑如何快速地将数据写入Excel。因此,本文将探讨多种Excel写入方式的速度对比,帮助我们选择最优的Excel写入方式。

2. Excel写入方式

2.1 openpyxl

openpyxl是Python处理Excel的常用库之一,提供了基本的Excel写入功能。下面我们将使用openpyxl写入数据至Excel,并计算运行时间。

import openpyxl

import time

# 创建一个工作薄

wb = openpyxl.Workbook()

# 选择活动工作表

ws = wb.active

# 写入数据

for i in range(1, 1001):

for j in range(1, 101):

ws.cell(row=i, column=j, value=i+j)

# 保存文件

start_time = time.time()

wb.save("openpyxl.xlsx")

print('openpyxl写入Excel耗时:', time.time() - start_time, '秒')

运行上述代码,我们可以得到openpyxl写入Excel的时间。下面我们将介绍另外几种Excel写入方式,与openpyxl进行速度对比。

2.2 xlsxwriter

xlsxwriter是Python写入Excel的另一种常用库。下面我们将使用xlsxwriter写入数据至Excel,并计算运行时间。

import xlsxwriter

import time

# 创建一个工作簿

workbook = xlsxwriter.Workbook('xlsxwriter.xlsx')

# 新建一个工作表

worksheet = workbook.add_worksheet()

# 写入数据

for i in range(1, 1001):

for j in range(1, 101):

worksheet.write(i-1, j-1, i+j)

# 保存文件

start_time = time.time()

workbook.close()

print('xlsxwriter写入Excel耗时:', time.time() - start_time, '秒')

2.3 pandas

pandas是Python中一个强大的数据分析库,其中有一个著名的功能模块pandas.DataFrame,用于处理数据表格。同时,pandas也能够将数据写入Excel。下面我们将使用pandas将数据写入Excel,并计算运行时间。

import pandas as pd

import time

# 创建数据

data = [[i+j for j in range(1, 101)] for i in range(1, 1001)]

# 将数据存储到DataFrame中

df = pd.DataFrame(data)

# 将数据写入Excel

start_time = time.time()

df.to_excel('pandas.xlsx', index=False, header=False)

print('pandas写入Excel耗时:', time.time() - start_time, '秒')

2.4 fastxlsx

fastxlsx是相对于openpyxl和xlsxwriter来说比较新的一种Python写入Excel的库。它的目标是成为最快和最轻量的Python写入Excel库。下面我们将使用fastxlsx将数据写入Excel,并计算运行时间。

import fastxlsx

import time

# 创建工作簿

workbook = fastxlsx.Workbook('fastxlsx.xlsx')

# 新建工作表

worksheet = workbook.add_worksheet()

# 写入数据

for i in range(1, 1001):

for j in range(1, 101):

worksheet.write(i-1, j-1, i+j)

# 保存文件

start_time = time.time()

workbook.close()

print('fastxlsx写入Excel耗时:', time.time() - start_time, '秒')

3. 实验结果与分析

下面是本次实验的结果:

openpyxl写入Excel耗时: 11.60232663154602 秒

xlsxwriter写入Excel耗时: 5.289911985397339 秒

pandas写入Excel耗时: 17.957289695739746 秒

fastxlsx写入Excel耗时: 1.6259148120880127 秒

我们可以看到,fastxlsx的速度明显优于其他库。特别是在处理大文件时,可以节省大量时间。

4. 总结

本文分别介绍了openpyxl、xlsxwriter、pandas和fastxlsx等多种Python写入Excel方式,并对比了它们的运行速度。实验结果表明,fastxlsx的写入速度远高于其他库,可以在Excel写入大数据量时大大缩短运行时间。

同时,本文也提醒读者,在使用底层的库时需要格外小心,尤其是需要处理复杂Excel文件时,fastxlsx并不一定适合所有场景,建议使用时要多方考虑。

后端开发标签