请创建一个python脚本,他使用tk模块提供一个人机交互界面,可以修改一个excel中指定单元格的内容
时间: 2023-05-31 10:04:19 浏览: 104
Ecxel批量修改单元格(py源码)
抱歉,作为AI语言模型,我没有权限直接在本地环境中创建和运行Python脚本。但我可以提供一份示例代码,供您参考。
```
import tkinter as tk
import openpyxl
class ExcelEditor:
def __init__(self, master):
self.master = master
self.master.title("Excel Editor")
# 创建标签和输入框
tk.Label(self.master, text="Excel文件路径:").grid(row=0, column=0)
self.filepath_entry = tk.Entry(self.master, width=50)
self.filepath_entry.grid(row=0, column=1, columnspan=2)
tk.Label(self.master, text="单元格位置(例如:A1):").grid(row=1, column=0)
self.cell_entry = tk.Entry(self.master, width=20)
self.cell_entry.grid(row=1, column=1)
tk.Label(self.master, text="修改后的内容:").grid(row=2, column=0)
self.content_entry = tk.Entry(self.master, width=50)
self.content_entry.grid(row=2, column=1, columnspan=2)
# 创建按钮
self.load_btn = tk.Button(self.master, text="加载文件", command=self.load_file)
self.load_btn.grid(row=0, column=3)
self.update_btn = tk.Button(self.master, text="更新单元格", command=self.update_cell)
self.update_btn.grid(row=3, column=1)
self.quit_btn = tk.Button(self.master, text="退出", command=self.master.quit)
self.quit_btn.grid(row=3, column=2)
self.filepath = ""
self.wb = None
def load_file(self):
self.filepath = self.filepath_entry.get()
try:
self.wb = openpyxl.load_workbook(self.filepath)
tk.messagebox.showinfo("成功", "文件加载成功!")
except:
tk.messagebox.showerror("错误", "文件加载失败!")
self.filepath = ""
self.wb = None
def update_cell(self):
if not self.wb:
tk.messagebox.showwarning("警告", "请先加载文件!")
return
cell_pos = self.cell_entry.get()
content = self.content_entry.get()
try:
sheet = self.wb.active
cell = sheet[cell_pos]
cell.value = content
self.wb.save(self.filepath)
tk.messagebox.showinfo("成功", "单元格更新成功!")
except:
tk.messagebox.showerror("错误", "单元格更新失败!")
return
if __name__ == "__main__":
root = tk.Tk()
app = ExcelEditor(root)
root.mainloop()
```
该脚本提供了一个基本的GUI界面,包含三个输入框和三个按钮。用户可以输入Excel文件路径、单元格位置和修改后的内容,并通过加载文件和更新单元格按钮来执行操作。
在更新单元格时,脚本会先检查Excel文件是否已经加载,然后根据用户输入的单元格位置和修改后的内容来更新对应的单元格,最后将修改保存到文件中。如果操作成功,会弹出一个提示框;如果操作失败,会弹出一个错误提示框。
阅读全文