python读取桌面Excel文件‘images.xlsx’,并且做一个窗体,里面输入行号和列号,就可以显示出对应的单元格里面的图片,图片格式是png
时间: 2024-09-15 22:12:39 浏览: 44
在Python中,你可以使用pandas库来读取Excel文件,然后结合tkinter库创建一个简单的图形用户界面(GUI),让用户输入行号和列号获取并显示图片。以下是基本步骤:
首先,确保安装了所需的库:
```bash
pip install pandas openpyxl tk
```
然后,编写Python代码:
```python
import tkinter as tk
from tkinter import messagebox
import pandas as pd
from PIL import ImageTk, Image
# 读取Excel文件
def load_excel():
excel_file = r"C:\Users\your_username\Desktop\images.xlsx" # 请替换为你的真实路径
df = pd.read_excel(excel_file)
img_df = df.iloc[:, 0] # 假设第一列是图片路径,如果是其他列,请相应调整
return img_df
# 显示图片
def show_image(row_num, col_num):
img_path = img_data.iloc[row_num][col_num]
try:
image = Image.open(img_path)
resized_img = image.resize((400, 400)) # 设置图片大小,根据需要调整
photo = ImageTk.PhotoImage(resized_img)
label.config(image=photo)
label.image = photo
except Exception as e:
messagebox.showerror("Error", f"无法打开图片:{str(e)}")
# 创建窗口和控件
root = tk.Tk()
img_data = load_excel()
row_label = tk.Label(root, text="行号")
row_label.grid(row=0, column=0)
row_entry = tk.Entry(root)
row_entry.grid(row=0, column=1)
col_label = tk.Label(root, text="列号")
col_label.grid(row=1, column=0)
col_entry = tk.Entry(root)
col_entry.grid(row=1, column=1)
button = tk.Button(root, text="显示图片", command=lambda: show_image(int(row_entry.get()), int(col_entry.get())))
button.grid(row=2, columnspan=2)
label = tk.Label(root) # 存储图片标签
label.pack()
root.mainloop()
```
阅读全文