import os
import pandas as pd
import tkinter as tk
from tkinter import filedialog
from tkinter.ttk import Button, Frame, Label
def read_and_extract_columns(folder_path, selected_columns):
for file_name in os.listdir(folder_path):
if file_name.endswith(".xlsx"):
file_path = os.path.join(folder_path, file_name)
try:
df = pd.read_excel(file_path, engine='openpyxl')
selected_columns = [df.columns[i] for i in selected_columns]
selected_columns = df[selected_columns]
new_file_path = os.path.join(folder_path, 'new_' + file_name)
selected_columns.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:
selected_columns = [0, 2, 4] # 指定要提取的列标(索引)
read_and_extract_columns(folder_path, selected_columns)
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()