Pythonでパスワード付きExcelファイルを扱う方法

IT・プログラミング

今回は、パスワードで保護されたExcelファイルをPythonを使って解読し、そのデータをCSV形式に変換する方法をご紹介します。ビジネスや個人で扱うデータが安全に管理されている一方で、そのデータをプログラムで処理する必要があるときに困った経験はありませんか?このガイドでは、その問題を解決する手順を詳しく説明します。

必要なライブラリ

まず、必要なPythonライブラリをインストールします。今回使用するのは、msoffcryptopandas、そしてopenpyxlです。

pip install msoffcrypto pandas openpyxl

ライブラリの簡単な説明

  • msoffcrypto: パスワード付きのMicrosoft Officeファイルを解読するためのライブラリです。
  • pandas: データ操作と解析に広く使用されているライブラリです。
  • openpyxl: Excelファイルを読み書きするためのライブラリです。

パスワード付きExcelファイルを解読してCSVに変換するコード

以下に、Pythonスクリプトのサンプルを示します。このスクリプトでは、パスワードで保護されたExcelファイルを解読し、各シートを個別のCSVファイルとして保存します。

import msoffcrypto
import pandas as pd
import io

# パスワード付きExcelファイルのパス
encrypted_file = 'path_to_your_file.xlsx'
password = 'your_password'

# 暗号化されたファイルを解読する
with open(encrypted_file, 'rb') as file:
    encrypted = msoffcrypto.OfficeFile(file)
    encrypted.load_key(password=password)

    decrypted_file = io.BytesIO()
    encrypted.decrypt(decrypted_file)

# 解読されたファイルをopenpyxlで読み込む
decrypted_file.seek(0)
xls = pd.ExcelFile(decrypted_file, engine='openpyxl')

# 全てのシートをCSVに変換
for sheet_name in xls.sheet_names:
    df = pd.read_excel(xls, sheet_name=sheet_name)
    csv_file = f'{sheet_name}.csv'
    df.to_csv(csv_file, index=False)

print("変換が完了しました。")

'path_to_your_file.xlsx''your_password'の部分を書き換えてください。

コードのポイント

  • msoffcryptoでの解読: msoffcrypto.OfficeFileを使用して、パスワード保護されたExcelファイルを解読します。この操作により、保護が解除されたファイルがメモリ内に保存されます。
  • pandasopenpyxlでのデータ処理: 解読されたファイルをpandas.ExcelFileで読み込み、各シートを個別のCSVファイルとして保存します。
タイトルとURLをコピーしました