sydomain

思绪来的快,去的也快,偶尔在这里停留。

python处理excel表格批量提取表格中的列进行排序(窗口模式)

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


Powered By sydomain

Copyright Your WebSite.Some Rights Reserved.