#はじめに
xlwings
がLinuxだと非対応だったのでOSに依存しない方法がないかと模索した結果です
#事前準備
今回利用するライブラリです
import pandas as pd
import tempfile
import msoffcrypto
from pathlib import Path
msoffcrypto
はインストール時は名称が違います
pip install msoffcrypto-tool
#サンプルコード
下記の場合を想定しています
・あるディレクトリ(input/)配下の全てのxlsxファイルの対象のシートをcsv出力
・パスワードが全て同じ(hogehoge)
・読み込みたいシート名が全て同じ(Sheet1)
import pandas as pd
import tempfile
import msoffcrypto
from pathlib import Path
file_dir = Path(r'data/')
password = 'hogehoge'
sheet_name = 'Sheet1'
for file in file_dir.glob("*.xlsx"):
with file.open("rb") as f,tempfile.TemporaryFile() as tf:
office_file = msoffcrypto.OfficeFile(f)
office_file.load_key(password=password)
office_file.decrypt(tf)
df = pd.read_excel(tf,sheet_name=sheet_name)
df.to_csv('output/' + file.name.replace('','xlsx') + '.csv',index=False)