使用 Python 3 和 tkinter 写一个表格处理程序,GUI界面为:2个文本框2个按钮,按钮名称分别叫导入表格、处理表格。 点击“导入表格”按钮导入多个需要处理的表格文件显示在第一个文本框中。点击“处理表格”按钮,新建一个名称为“汇总表”的表格文件,然后将每一个导入表格的第一个工作表复制粘贴(包括格式)到汇总表中。
时间: 2024-02-12 12:06:22 浏览: 65
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
以下是一个简单的示例程序,实现了您的需求。请注意,该程序仅支持处理 xlsx 格式的表格文件。
```python
import tkinter as tk
from tkinter import filedialog
import openpyxl
class TableProcessor:
def __init__(self):
self.root = tk.Tk()
self.root.title("表格处理程序")
# 第一个文本框用于显示需要处理的表格文件路径
self.file_paths_text = tk.Text(self.root, height=5)
self.file_paths_text.pack(pady=10)
# "导入表格"按钮
import_button = tk.Button(self.root, text="导入表格", command=self.import_files)
import_button.pack()
# 第二个文本框用于显示处理结果
self.result_text = tk.Text(self.root, height=5)
self.result_text.pack(pady=10)
# "处理表格"按钮
process_button = tk.Button(self.root, text="处理表格", command=self.process_files)
process_button.pack()
self.root.mainloop()
def import_files(self):
file_paths = filedialog.askopenfilenames(defaultextension=".xlsx", filetypes=[("Excel Files", "*.xlsx")])
self.file_paths_text.delete(1.0, tk.END)
self.file_paths_text.insert(tk.END, "\n".join(file_paths))
def process_files(self):
file_paths = self.file_paths_text.get(1.0, tk.END).split("\n")
file_paths = [path.strip() for path in file_paths if path.strip()]
if not file_paths:
self.result_text.delete(1.0, tk.END)
self.result_text.insert(tk.END, "请先导入表格文件")
return
result_wb = openpyxl.Workbook()
result_ws = result_wb.active
result_ws.title = "汇总表"
for file_path in file_paths:
wb = openpyxl.load_workbook(file_path)
ws = wb.active
for row in ws.iter_rows():
result_ws.append([cell.value for cell in row])
result_wb.save("汇总表.xlsx")
self.result_text.delete(1.0, tk.END)
self.result_text.insert(tk.END, "处理完成,结果已保存到汇总表.xlsx")
if __name__ == "__main__":
TableProcessor()
```
该程序创建了一个 GUI 窗口,并在窗口中添加了两个文本框和两个按钮。当用户点击“导入表格”按钮时,程序将打开文件对话框,用户可以选择需要处理的表格文件,文件路径将显示在第一个文本框中。当用户点击“处理表格”按钮时,程序将逐个打开选中的表格文件,将每个文件的第一个工作表中的内容复制到一个新的工作表中,并将结果保存到名为“汇总表.xlsx”的文件中,同时在第二个文本框中显示处理结果。
请注意,该程序仅提供了基本的功能,您可以根据需要进一步完善程序。
阅读全文