使用 Python 3 和 tkinter 写一个excle表处理程序,GUI上有2个文本框3个按钮,点击第一个文本框选择要处理的表格,要处理的表格为多个,并把这些工作表显示到第一个文本框中。
时间: 2024-02-12 17:05:42 浏览: 117
Python实现处理excel表格,主要以多表汇总为主.zip
好的,下面是一个简单的 Python 3 和 tkinter 写的 excel 表处理程序的例子,满足您的需求:
```python
import tkinter as tk
from tkinter import filedialog
import openpyxl
class ExcelProcessor:
def __init__(self, master):
self.master = master
master.title("Excel Processor")
# 创建控件
self.label1 = tk.Label(master, text="Select Excel Files:")
self.label1.grid(row=0, column=0)
self.entry1 = tk.Entry(master, width=50)
self.entry1.grid(row=0, column=1)
self.button1 = tk.Button(master, text="Browse", command=self.browse_files)
self.button1.grid(row=0, column=2)
self.label2 = tk.Label(master, text="Selected Sheets:")
self.label2.grid(row=1, column=0)
self.listbox1 = tk.Listbox(master, width=50)
self.listbox1.grid(row=1, column=1)
self.button2 = tk.Button(master, text="Process", command=self.process_files)
self.button2.grid(row=2, column=1)
self.button3 = tk.Button(master, text="Clear", command=self.clear_selection)
self.button3.grid(row=2, column=2)
def browse_files(self):
# 打开文件对话框选择文件
file_paths = filedialog.askopenfilenames(filetypes=[("Excel Files", "*.xlsx")])
# 将选择的文件路径显示在文本框中
self.entry1.delete(0, tk.END)
self.entry1.insert(0, ";".join(file_paths))
# 显示文件中的工作表
self.listbox1.delete(0, tk.END)
for file_path in file_paths:
workbook = openpyxl.load_workbook(file_path)
for sheet_name in workbook.sheetnames:
self.listbox1.insert(tk.END, sheet_name)
def process_files(self):
# 处理文件中选中的工作表
selected_sheets = self.listbox1.curselection()
file_paths = self.entry1.get().split(";")
for file_path in file_paths:
workbook = openpyxl.load_workbook(file_path)
for i in selected_sheets:
sheet_name = self.listbox1.get(i)
sheet = workbook[sheet_name]
# 在这里添加对工作表的处理代码
def clear_selection(self):
# 清空文本框和列表框的内容
self.entry1.delete(0, tk.END)
self.listbox1.delete(0, tk.END)
root = tk.Tk()
app = ExcelProcessor(root)
root.mainloop()
```
在这个例子中,我们使用 tkinter 创建了一个窗口,包含了两个文本框和三个按钮。点击第一个按钮可以打开文件对话框,选择要处理的 excel 表格。我们使用 openpyxl 库来读取和处理 excel 表格,将每个表格的工作表名称显示在第二个文本框中。用户可以在第二个文本框中选择要处理的工作表,然后点击第三个按钮来处理这些工作表。
这只是一个简单的例子,您可以根据您的具体需求来修改代码。
阅读全文