Pythonを使用して、指定されたフォルダ内のすべてのExcelファイル(`.xls` および `.xlsx`)のシート1にあるデータを結合し、新しいExcelファイルに保存するプログラム

Pythonを使用して、指定されたフォルダ内のすべてのExcelファイル(`.xls` および `.xlsx`)のシート1にあるデータを結合し、新しいExcelファイルに保存するプログラムを作成します。この処理を行うためには、`pandas` と `openpyxl`(または `xlrd`)ライブラリを使用します。これらのライブラリは、Excelファイルの読み込みと書き込みを簡単に行うことができます。

まずは、必要なライブラリをインストールします:

pip install pandas openpyxl xlrd

次に、フォルダ内の全てのExcelファイルからデータを読み込み、それらを結合して新しいファイルに保存するPythonスクリプトを記述します:

import os
import pandas as pd
from tkinter import filedialog
from tkinter import Tk

def combine_excel_files(folder_path):
    all_data_frames = []

    for filename in os.listdir(folder_path):
        if filename.endswith('.xls') or filename.endswith('.xlsx'):
            file_path = os.path.join(folder_path, filename)
            df = pd.read_excel(file_path, sheet_name=0)  # シート1を読み込む
            all_data_frames.append(df)

    combined_df = pd.concat(all_data_frames, ignore_index=True)
    return combined_df

def save_combined_file(combined_df):
    root = Tk()
    root.withdraw()  # ファイルダイアログのみ表示
    file_path = filedialog.asksaveasfilename(defaultextension='.xlsx')
    if file_path:
        combined_df.to_excel(file_path, index=False)
        print(f"ファイルが保存されました: {file_path}")
    else:
        print("ファイルの保存がキャンセルされました。")

# フォルダ選択ダイアログを表示
root = Tk()
root.withdraw()  # ダイアログのみ表示
folder_selected = filedialog.askdirectory()
root.destroy()

if folder_selected:
    combined_data = combine_excel_files(folder_selected)
    save_combined_file(combined_data)
else:
    print("フォルダが選択されませんでした。")

このスクリプトは以下の手順で動作します:

  1. ユーザーにフォルダを選択させます。

  2. 選択したフォルダ内の全ての `.xls` および `.xlsx` ファイルからシート1のデータを読み込みます。

  3. 読み込んだデータをすべて結合し、新しいデータフレームに格納します。

  4. 結合したデータを新しいExcelファイルとして保存するためのダイアログを表示し、ユーザーに保存先を選択させます。

このスクリプトを実行するには、Python環境がセットアップされていること、および必要なライブラリがインストールされていることを確認してください。また、`tkinter`ライブラリはPythonにデフォルトで含まれているはずですが、もしインストールされていない場合はそれもインストールする必要があります。

この記事が気に入ったらサポートをしてみませんか?