# python pandas合並多個excel(xls和xlsx)文件(彈窗選擇文件夾和保存文件)
import tkinter as tk
from tkinter import filedialog
import os
import pandas as pd
import glob
root = tk.Tk()
root.withdraw()
# 選擇文件夾位置
filelocation = os.path.normpath(filedialog.askdirectory(initialdir=os.getcwd()))
lst=[]
# 讀取文件夾下所有文件(xls和xlsx都讀取)
for i in glob.glob(filelocation + "\\\\" + "*.*"):
if os.path.splitext(i)[1] in [".xls", ".xlsx"]:
lst.append(pd.read_excel(i))
# 保存合並后的excel文件
writer = pd.ExcelWriter(filedialog.asksaveasfilename(title = "保存", initialdir = filelocation, defaultextension = "xlsx", filetypes = [("Excel 工作簿", "*.xlsx"), ("Excel 97-2003 工作簿", "*.xls")]))
pd.concat(lst).to_excel(writer, 'all', index=False)
writer.save()
print('\n%d個文件已經合並成功!'% len(lst))