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("フォルダが選択されませんでした。")
このスクリプトは以下の手順で動作します:
ユーザーにフォルダを選択させます。
選択したフォルダ内の全ての `.xls` および `.xlsx` ファイルからシート1のデータを読み込みます。
読み込んだデータをすべて結合し、新しいデータフレームに格納します。
結合したデータを新しいExcelファイルとして保存するためのダイアログを表示し、ユーザーに保存先を選択させます。
このスクリプトを実行するには、Python環境がセットアップされていること、および必要なライブラリがインストールされていることを確認してください。また、`tkinter`ライブラリはPythonにデフォルトで含まれているはずですが、もしインストールされていない場合はそれもインストールする必要があります。
この記事が気に入ったらサポートをしてみませんか?