使用 Python 3 和 tkinter 写一个excle表处理程序,GUI上有2个文本框3个按钮,点击第一个文本框选择要处理的表格,要处理的表格为多个,并把这些工作表显示到第一个文本框中。点击第二个按钮,选择接收的excle表格,并显示到第二个文本框中.点击第3个按钮,开始处理表格,处理过程为:将第一给文本框中有数据的工作表复制粘贴到第二个文本框的excle表格共,粘贴过来的每一个表格为一个工作表,工作表的名称和第一个文本框中表格的名称一一对应。
时间: 2024-02-12 19:05:22 浏览: 151
好的,这是一个比较具体的问题,我可以为您提供一些思路和代码示例:
首先,您需要使用 `tkinter` 模块创建 GUI 界面,包括两个文本框和三个按钮。具体实现可以参考以下代码:
```python
import tkinter as tk
from tkinter import filedialog
class ExcelProcessor:
def __init__(self, master):
self.master = master
self.master.title("Excel Processor")
# 创建 GUI 界面
self.label1 = tk.Label(master, text="Select Excel Sheets to Process:")
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="Select Sheets", command=self.select_sheets)
self.button1.grid(row=0, column=2)
self.label2 = tk.Label(master, text="Select Excel File to Receive:")
self.label2.grid(row=1, column=0)
self.entry2 = tk.Entry(master, width=50)
self.entry2.grid(row=1, column=1)
self.button2 = tk.Button(master, text="Select File", command=self.select_file)
self.button2.grid(row=1, column=2)
self.button3 = tk.Button(master, text="Process Sheets", command=self.process_sheets)
self.button3.grid(row=2, column=1)
def select_sheets(self):
# 打开文件选择对话框,选择要处理的 Excel 文件
filetypes = (("Excel files", "*.xlsx"), ("All files", "*.*"))
sheets = filedialog.askopenfilenames(title="Select Excel Sheets", filetypes=filetypes)
self.entry1.delete(0, tk.END)
self.entry1.insert(0, ", ".join(sheets))
def select_file(self):
# 打开文件选择对话框,选择接收结果的 Excel 文件
filetypes = (("Excel files", "*.xlsx"), ("All files", "*.*"))
file = filedialog.askopenfilename(title="Select Excel File", filetypes=filetypes)
self.entry2.delete(0, tk.END)
self.entry2.insert(0, file)
def process_sheets(self):
# 读取要处理的 Excel 文件,并将每个工作表复制到接收结果的文件中
sheets = self.entry1.get().split(", ")
output_file = self.entry2.get()
for sheet in sheets:
# 读取要复制的工作表
wb1 = openpyxl.load_workbook(sheet)
for ws1 in wb1.worksheets:
# 复制工作表到接收结果的文件中,并设置工作表的名称
wb2 = openpyxl.load_workbook(output_file)
ws2 = wb2.create_sheet(title=ws1.title)
for row in ws1.iter_rows():
for cell in row:
ws2[cell.coordinate].value = cell.value
wb2.save(output_file)
```
这段代码创建了一个名为 `ExcelProcessor` 的类,包含三个方法 `select_sheets()`、`select_file()` 和 `process_sheets()`。`select_sheets()` 和 `select_file()` 方法用于打开文件选择对话框,选择要处理的 Excel 文件和接收结果的 Excel 文件,并将选择的文件路径显示到文本框中。`process_sheets()` 方法用于处理 Excel 表格,首先获取要处理的 Excel 文件和接收结果的 Excel 文件的路径,然后遍历要处理的 Excel 文件的每个工作表,将每个工作表复制到接收结果的 Excel 文件中,设置工作表的名称为原始工作表的名称。
需要注意的是,上述代码需要使用 `openpyxl` 模块读取和写入 Excel 文件。您可以使用 `pip` 命令安装该模块:
```
pip install openpyxl
```
希望这些信息能够对您有所帮助。
阅读全文