end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

openpyxl for python3 で excel(xlsx) 読み込みが遅い場合、read_only=True,data_only=True,values_only=True

単純に openpyxl を使用した場合、止まっているのかと心配になる程、遅いのですが、 「read_only=True,data_only=True」や「values_only=True」を指定することで、マシになります。

その1 read_only=True,data_only=True

遅い

wbook = openpyxl.load_workbook(tmp_xlsx_path)

速い

wbook = openpyxl.load_workbook(tmp_xlsx_path,
                               read_only=True,
                               data_only=True)

その2 values_only=True

遅い

while row_no < wsheet.max_row :
    row_vals = wsheet[row_no]
    city_code_name_str = row_vals[5].value

速い

for row_vals in wsheet.iter_rows(min_row=12, values_only=True):
    row_vals = list(row_vals)
    city_code_name_str = row_vals[5]