使用 Python 3 和 tkinter 写一个表格处理程序,GUI界面为:2个文本框2个按钮,按钮名称分别叫导入表格、处理表格。 点击“导入表格”按钮导入多个需要处理的表格文件显示在第一个文本框中。点击“处理表格”按钮,新建一个名称为“汇总表”的表格文件,然后将每一个导入表格的第一个工作表复制粘贴到汇总表中的多个工作表中,复制过程中包括表格的要保证表格的样式一起复制。
时间: 2024-02-12 14:06:29 浏览: 71
好的,以下是完整的代码实现:
```python
import tkinter as tk
from tkinter import filedialog
import openpyxl
class Application(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.pack()
self.create_widgets()
def create_widgets(self):
self.textbox1 = tk.Text(self, height=10, width=50)
self.textbox1.pack()
self.textbox2 = tk.Entry(self)
self.textbox2.pack()
self.import_button = tk.Button(self, text="导入表格", command=self.import_spreadsheet)
self.import_button.pack()
self.process_button = tk.Button(self, text="处理表格", command=self.process_spreadsheets)
self.process_button.pack()
def import_spreadsheet(self):
filenames = filedialog.askopenfilenames()
self.textbox1.delete(1.0, tk.END)
for filename in filenames:
self.textbox1.insert(tk.END, filename + "\n")
def process_spreadsheets(self):
# 打开汇总表
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "汇总表"
# 获取所有导入的表格文件名
filenames = self.textbox1.get(1.0, tk.END).split("\n")[:-1]
# 复制每个表格的第一个工作表到汇总表中
for filename in filenames:
# 打开表格文件
wb2 = openpyxl.load_workbook(filename)
ws2 = wb2.active
# 复制第一个工作表到汇总表中
sheet_name = ws2.title
if sheet_name in wb.sheetnames:
sheet_name += " (2)"
ws2_copy = wb.copy_worksheet(ws2)
ws2_copy.title = sheet_name
# 保存汇总表
wb.save(self.textbox2.get())
root = tk.Tk()
app = Application(master=root)
app.mainloop()
```
在代码中,我们使用了 Text 组件来显示导入的文件名,使用 Entry 组件来输入汇总表的文件名。同时,我们使用了 openpyxl 模块来读取和写入 Excel 文件,并使用 copy_worksheet 函数复制工作表。
注意,该程序仅仅处理每个表格的第一个工作表,如果需要处理其他工作表,还需要进一步修改代码。
希望这个程序可以帮到您。
阅读全文