Excel 性能比对

发布时间 2023-07-21 07:24:55作者: 逍遥小天狼
import timeit
import xlwt
import openpyxl
import xlsxwriter


# 使用xlwt生成Excel文件
def test_xlwt():
    workbook = xlwt.Workbook()
    worksheet = workbook.add_sheet('Sheet1')
    for i in range(1000):
        for j in range(100):
            worksheet.write(i, j, f'Cell ({i}, {j})')
    workbook.save('xlwt_example.xls')


# 使用openpyxl生成Excel文件
def test_openpyxl():
    workbook = openpyxl.Workbook()
    worksheet = workbook.active
    for i in range(1, 1001):
        for j in range(1, 101):
            worksheet.cell(i, j, value=f'Cell ({i}, {j})')
    workbook.save('openpyxl_example.xlsx')


# 使用openpyxl生成Excel文件
def test_openpyxl_fast():
    workbook = openpyxl.Workbook(write_only=True)
    worksheet = workbook.create_sheet()
    for i in range(1, 1001):
        row_data = [f'Cell ({i}, {j})' for j in range(1, 101)]
        worksheet.append(row_data)
    workbook.save('openpyxl_example.xlsx')


# 使用xlsxwriter生成Excel文件
def test_xlsxwriter():
    workbook = xlsxwriter.Workbook('xlsxwriter_example.xlsx')
    worksheet = workbook.add_worksheet()
    for i in range(1000):
        for j in range(100):
            worksheet.write(i, j, f'Cell ({i}, {j})')
    workbook.close()


if __name__ == '__main__':
    xlwt_time = timeit.timeit(test_xlwt, number=1)
    print(f"xlwt: {xlwt_time:.5f} seconds")

    openpyxl_time = timeit.timeit(test_openpyxl, number=1)
    print(f"openpyxl: {openpyxl_time:.5f} seconds")

    openpyxl_time = timeit.timeit(test_openpyxl_fast, number=1)
    print(f"openpyxl_fast: {openpyxl_time:.5f} seconds")
    
    xlsxwriter_time = timeit.timeit(test_xlsxwriter, number=1)
    print(f"xlsxwriter: {xlsxwriter_time:.5f} seconds")
View Code