繁体   English   中英

使用 Python (openpyxl) 加快读取大型 Excel 工作表

[英]Speed up reading a large Excel worksheet using Python (openpyxl)

我正在尝试读取和清理 Excel 工作表中的数据,并将清理后的数据导入 MySQL 数据库。 我的问题是 Excel 工作表的阅读部分花费了太长时间。 我想尽可能优化这个时间。

我尝试了以下方法:

from openpyxl import load_workbook
from openpyxl.utils.dataframe import dataframe_to_rows


start_time = datetime.datetime.now()

wb = load_workbook(filename='Book1.xlsx', read_only=True, data_only=True)
ws=wb.active
column = ws.max_column
row = ws.max_row

for i in range(1, row+1):
    for j in range(1, column+1):
        cell_obj = ws.cell(row=i, column=j)
        if cell_obj.value != None:
            print(cell_obj.value)
    print('----------------This Row this execute--------------------------------')

end_time = datetime.datetime.now()
print(end_time-start_time)

我非常感谢任何建议,例如 Cython,但请不要建议使用 CSV 文件。

我强烈建议使用 Pandas,因为它具有read_excelto_sql函数,这正是您想要做的。 此外,Pandas 速度非常快。

语法和最佳实践意味着您的代码将如下所示:

df = pd.read_excel("path/to/file")
df.to_sql("a_connection_string")

真的,就是这样!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM