用 python tkinter 写一个能够上传多个本地excel文件,并可以合并成一个excel文件且导出的程序
时间: 2024-03-16 07:43:13 浏览: 220
使用python将多个excel文件合并到同一个文件的方法
5星 · 资源好评率100%
好的,下面是一个示例程序,其中使用了tkinter和pandas库来实现上传、合并和导出Excel文件的功能。
```python
import tkinter as tk
from tkinter import filedialog
import pandas as pd
class ExcelMerger:
def __init__(self, master):
self.master = master
self.file_list = []
tk.Label(master, text="Excel合并器", font=("Arial", 20)).grid(row=0, column=0, columnspan=3, pady=20)
tk.Button(master, text="选择文件", command=self.choose_files).grid(row=1, column=0, pady=10)
tk.Button(master, text="合并文件", command=self.merge_files).grid(row=1, column=1, pady=10)
tk.Button(master, text="导出文件", command=self.export_file).grid(row=1, column=2, pady=10)
def choose_files(self):
files = filedialog.askopenfilenames(title="选择Excel文件", filetypes=(("Excel文件", "*.xlsx"), ("所有文件", "*.*")))
self.file_list = list(files)
def merge_files(self):
if len(self.file_list) == 0:
tk.messagebox.showwarning("警告", "请选择要合并的文件!")
return
df_list = []
for file in self.file_list:
df = pd.read_excel(file)
df_list.append(df)
merged_df = pd.concat(df_list, ignore_index=True)
self.merged_df = merged_df
tk.messagebox.showinfo("提示", "文件合并完成!")
def export_file(self):
if not hasattr(self, "merged_df"):
tk.messagebox.showwarning("警告", "请先合并文件再导出!")
return
export_file_path = filedialog.asksaveasfilename(defaultextension=".xlsx", filetypes=(("Excel文件", "*.xlsx"), ("所有文件", "*.*")))
self.merged_df.to_excel(export_file_path, index=False)
tk.messagebox.showinfo("提示", "文件导出完成!")
if __name__ == "__main__":
root = tk.Tk()
ExcelMerger(root)
root.mainloop()
```
程序界面包括三个按钮,分别是选择文件、合并文件和导出文件。选择文件按钮使用filedialog库的askopenfilenames函数来打开文件选择对话框,用户可以选择多个Excel文件。合并文件按钮则使用pandas库的read_excel函数读取选中的文件,并调用concat函数进行合并。导出文件按钮使用filedialog库的asksaveasfilename函数来打开保存文件对话框,并将合并后的数据框导出为Excel文件。
注意:本程序中使用了pandas库来处理Excel文件,请确保已经安装了该库。
阅读全文