我们可以对程序进行一些改进,来满足您的需求:
1. 在选择了存放文件夹后,可以使用 `Label` 来更新界面的状态,显示“正在处理中”或“已完成”。
2. 修改 Excel 文件中的超链接列,让其具有可以点击打开 PDF 的功能。
以下是一个基本思路:
import os
import shutil
import tkinter as tk
from tkinter import filedialog, messagebox
import pandas as pd
# 初始化全局变量
selected_folders = []
def select_folder():
folder = filedialog.askdirectory()
if folder:
selected_folders.append(folder)
listbox.insert(tk.END, folder)
def select_destination():
destination_folder = filedialog.askdirectory()
if not destination_folder:
return
# 界面更新为“正在处理中”
status_label.config(text="正在处理中...")
root.update()
pdf_folder = os.path.join(destination_folder, "PDF")
os.makedirs(pdf_folder, exist_ok=True)
pdf_files = set()
for folder in selected_folders:
for root_dir, dirs, files in os.walk(folder):
for file in files:
if file.endswith('.pdf'):
pdf_files.add(file)
pdf_files_copied = []
for file in pdf_files:
for folder in selected_folders:
file_path = os.path.join(folder, file)
if os.path.exists(file_path):
shutil.copy(file_path, pdf_folder)
pdf_files_copied.append(file)
break
data = {
"名称": [os.path.splitext(file)[0] for file in pdf_files_copied],
"超链接": [f'=HYPERLINK("{os.path.join(pdf_folder, file)}", "{file}")' for file in pdf_files_copied]
}
df = pd.DataFrame(data)
excel_path = os.path.join(destination_folder, "PDF汇总.xlsx")
df.to_excel(excel_path, index=False)
# 界面更新为“已完成”
status_label.config(text="已完成")
root.update()
root.after(10000, root.quit) # 10秒后关闭窗口
def stop():
root.quit()
root = tk.Tk()
root.title("PDF 汇总工具")
select_button = tk.Button(root, text="选择文件夹", command=select_folder)
select_button.pack()
listbox = tk.Listbox(root)
listbox.pack(fill=tk.BOTH, expand=True)
destination_button = tk.Button(root, text="选择存放文件夹", command=select_destination)
destination_button.pack()
status_label = tk.Label(root, text="")
status_label.pack()
stop_button = tk.Button(root, text="停止", command=stop)
stop_button.pack()
root.mainloop()
### 改进说明
1. **界面状态更新**:在合并 PDF 过程中更改标签文本为“正在处理中”,完成后更改为“已完成”。
2. **Excel 超链接**:通过在 DataFrame 中的超链接列中添加 `=HYPERLINK("<路径>", "<显示文本>")` 公式来实现实际可点击的超链接。
这些改进使交互更加直观和功能更完善。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |