使用 Python 3 和 tkinter 写一个excle表处理程序,GUI上有2个文本框3个按钮,点击第一个文本框选择要处理的表格,要处理的表格为多个,并把这些工作表显示到第一个文本框中。点击第二个按钮,选择接收的excle表格,并显示到第二个文本框中.点击第3个按钮,开始处理表格,处理过程为:将第一给文本框中有数据的工作表复制粘贴到第二个文本框的excle表格共,粘贴过来的每一个表格为一个工作表,工作表的名称和第一个文本框中表格的名称一一对应。
时间: 2024-02-12 09:05:24 浏览: 132
如何用python处理excel表格
这个问题我已经回答过了,以下是完整的代码示例,您可以参考:
```python
import tkinter as tk
from tkinter import filedialog
import openpyxl
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)
root = tk.Tk()
app = ExcelProcessor(root)
root.mainloop()
```
请注意,为了实现这个问题,您需要使用 `tkinter` 和 `openpyxl` 两个模块。您可以使用 `pip` 命令安装这两个模块:
```
pip install tkinter openpyxl
```
希望这些信息能够对您有所帮助。
阅读全文