[英]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_excel和to_sql函数,这正是您想要做的。 此外,Pandas 速度非常快。
语法和最佳实践意味着您的代码将如下所示:
df = pd.read_excel("path/to/file")
df.to_sql("a_connection_string")
真的,就是这样!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.