import os import pandas as pd import tkinter as tk from tkinter import filedialog from tkinter.ttk import Button, Frame, Label def read_and_sort_excel_folder(folder_path): for file_name in os.listdir(folder_path): if file_name.endswith(".xlsx") or file_name.endswith(".xls"): file_path = os.path.join(folder_path, file_name) try: df = pd.read_excel(file_path, engine='openpyxl') df['姓名'] = df['姓名'].astype(str) df['联系方式'] = df['联系方式'].astype(str) df['收货地址'] = df['收货地址'].astype(str) df['快递单号'] = df['快递单号'].astype(str) column_values = df[['姓名', '联系方式', '收货地址', '快递单号']].sort_values(by='姓名') new_file_path = os.path.join(folder_path, 'new_' + file_name) column_values.to_excel(new_file_path, index=False, engine='openpyxl') print(f"已完成: {file_name}") except Exception as e: print(f"An error occurred with {file_name}: {e}") else: print(f"跳过非Excel文件: {file_name}") def select_folder(): folder_path = filedialog.askdirectory(title="选择文件夹") if folder_path: read_and_sort_excel_folder(folder_path) else: print("请选择一个文件夹") def create_close_button(frame): close_button = Button(frame, text="关闭", command=root.quit) close_button.pack(side=tk.RIGHT) def create_title_frame(): title_frame = Frame(root, bg="blue", width=200, height=50) Label(title_frame, text="Excel批量处理程序", bg="blue", fg="white").pack(side=tk.LEFT) create_close_button(title_frame) title_frame.pack(pady=10) # 创建主窗口 root = tk.Tk() root.title("Excel 解析") root.geometry("400x300") # 设置窗口大小 root.configure(background='darkblue') # 设置背景色 # 添加文字说明 label = tk.Label(root, text="1.选择你放文件的文件夹即可\n2.程序自动处理并自动保存\n\n例子:文件A放在文件夹B\n程序处理之后的新文件\n将自动保存在文件夹B中", bg="darkblue", fg="white", font=("Arial", 16)) label.pack(pady=10) # 垂直方向上添加一些间距 # 在标签的右下角添加作者信息 author_label = tk.Label(root, text="作者:sy", bg="darkblue", fg="white", font=("Arial", 12)) author_label.place(x=350, y=270, anchor="se") # 将作者标签放置在标签的右下角 # 添加一个按钮,点击时执行select_folder函数 button = tk.Button(root, text="选择文件夹", command=select_folder) button.pack() # 运行主循环,等待事件处理 root.mainloop()
如果需要处理xls格式的文件,可以尝试修改代码中的pd.read_excel这一行,将engine='openpyxl'改为engine='xlrd'
安装库
pip install xlrd>=2.0.1