도먼 추가 정보 생성 기능 구현
This commit is contained in:
47
merge_excel_files.py
Normal file
47
merge_excel_files.py
Normal file
@@ -0,0 +1,47 @@
|
||||
import pandas as pd
|
||||
import os
|
||||
import glob
|
||||
import sys
|
||||
|
||||
def merge_excel_files(input_directory, output_filename="merged_output.xlsx"):
|
||||
"""
|
||||
Merges all .xlsx files in the specified directory into a single Excel file,
|
||||
with each original file becoming a sheet named after the original filename.
|
||||
|
||||
Args:
|
||||
input_directory (str): The path to the directory containing the Excel files.
|
||||
output_filename (str): The name of the output merged Excel file.
|
||||
"""
|
||||
excel_files = glob.glob(os.path.join(input_directory, "**/*.xlsx"), recursive=True)
|
||||
|
||||
if not excel_files:
|
||||
print(f"No .xlsx files found in '{input_directory}'.")
|
||||
return
|
||||
|
||||
print(f"Found {len(excel_files)} Excel files to merge:")
|
||||
for f in excel_files:
|
||||
print(f"- {os.path.basename(f)}")
|
||||
|
||||
output_path = os.path.join(input_directory, output_filename)
|
||||
|
||||
with pd.ExcelWriter(output_path, engine='openpyxl') as writer:
|
||||
for excel_file in excel_files:
|
||||
try:
|
||||
df = pd.read_excel(excel_file)
|
||||
sheet_name = os.path.splitext(os.path.basename(excel_file))[0]
|
||||
df.to_excel(writer, sheet_name=sheet_name, index=False)
|
||||
print(f"Successfully added '{os.path.basename(excel_file)}' as sheet '{sheet_name}'.")
|
||||
except Exception as e:
|
||||
print(f"Error processing '{os.path.basename(excel_file)}': {e}")
|
||||
|
||||
print(f"All Excel files merged into '{output_path}'.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) > 1:
|
||||
input_dir = sys.argv[1]
|
||||
else:
|
||||
input_dir = os.getcwd()
|
||||
|
||||
directory_name = os.path.basename(input_dir)
|
||||
output_filename = f"{directory_name}.xlsx"
|
||||
merge_excel_files(input_dir, output_filename=output_filename)
|
||||
Reference in New Issue
Block a user