標準/一般的なライブラリを使用した私の調査によると、これは2020 年の時点でxlsx
/には実装されていませんがxls
、xlsb
. いずれにせよ、これらのソリューションにより、パフォーマンスが大幅に向上するはずです。、、。xls
_xlsx
xlsb
以下は、〜10Mbxlsx
のxlsb
ファイルでベンチマークされました。
xlsx, xls
from openpyxl import load_workbook
def get_sheetnames_xlsx(filepath):
wb = load_workbook(filepath, read_only=True, keep_links=False)
return wb.sheetnames
ベンチマーク: ~ 14 倍の速度向上
# get_sheetnames_xlsx vs pd.read_excel
225 ms ± 6.21 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
3.25 s ± 140 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
xlsb
from pyxlsb import open_workbook
def get_sheetnames_xlsb(filepath):
with open_workbook(filepath) as wb:
return wb.sheets
ベンチマーク: ~ 56x の速度向上
# get_sheetnames_xlsb vs pd.read_excel
96.4 ms ± 1.61 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
5.36 s ± 162 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
ノート: