merge_by_sheet.py
は、複数のExcelファイルを同名シートごとに縦結合し、1つのExcelファイルとして出力するツールです。GUIを使用して簡単に操作でき、ドラッグ&ドロップにも対応しています。
- ファイルのドラッグ&ドロップ
複数のExcelファイルをGUIにドラッグ&ドロップして追加可能。 - ファイルリストの順序変更
ファイルの順序を上下に移動可能。 - ファイルの削除
選択したファイルまたはすべてのファイルを削除可能。 - 結合対象シートのホワイトリスト
結合するシート名をカンマ区切りで指定可能。 - ヘッダー行の指定
ヘッダー行番号を指定可能(0=1行目がヘッダー)。 - 保存先の指定
結合結果の保存先を指定可能。 - 追跡列の付与
元ファイル名とシート名を追跡するための列(_source_file
,_source_sheet
)を自動追加。
以下のコマンドで必要なPythonライブラリをインストールしてください。
pip install pandas openpyxl tkinterdnd2
以下のコマンドでスクリプトを実行します。
python merge_by_sheet.py
- ファイルの追加
- 「ファイルを追加」ボタンをクリックしてExcelファイルを選択するか、GUIにドラッグ&ドロップします。
- 結合設定
- 必要に応じて、結合対象シート名(ホワイトリスト)やヘッダー行番号を設定します。
- 保存先の指定
- 保存先を指定します(デフォルトでは現在の作業ディレクトリに保存されます)。
- 結合の実行
- 「結合を実行」ボタンをクリックして処理を開始します。
- 対応ファイル形式:
.xlsx
,.xlsm
,.xls
- Pythonバージョン: 3.8以上
- 読み込み失敗時や書き出し失敗時には警告メッセージを表示します。
- ホワイトリストやヘッダー行設定が不正な場合はエラーメッセージを表示します。
- 結合結果は指定した保存先にExcelファイルとして出力されます。
- 各シートは同名シートごとに縦結合され、欠損値は空欄で補完されます。
- 元ファイル名とシート名を記録した
_source_file
,_source_sheet
列が追加されます。
- Excelのシート名は31文字以内に自動調整されます。
- ファイルリストの順序は結合順序に影響します。