xlrd for python で excel (xlsx) を読む - end0tknr's kipple - 新web写経開発
上記エントリに倣い openpyxl for python で excel (xlsx)を読むと速度が遅く、 特にレコード数の多い excelデータではこれが致命的。
どうやら
cell = wsheet.cell(row=row,column=col)
のように、ワークシートから座標指定で、各セルを取り出していることが原因らしい。
なので、wsheet.iter_rows() を用いることで、かなりの高速化になります。
for cells in wsheet.iter_rows(min_row=2): # min_row: 読取り開始行 cell = cells[0] shukka_date = datetime.datetime.strptime(str(cell.value), '%Y-%m-%d %H:%M:%S') shukka_date_str = shukka_date.strftime('%Y-%m-%d') col = 1 while col < len( cells ): factory = factories[col-1] units_waku = cells[col].value fact_shukka_mst[factory][shukka_date_str] = units_waku col += 1 :