本人为python小白,最近在自学python。
我媳妇儿公司有张Excel表格,每天都会新建一个sheet记录数据,大致如下图。
企业微信截图_17200583446507.png (18.54 KB, 下载次数: 0)
下载附件
2024-7-4 09:57 上传
媳妇儿说我学了这么久,让我写个程序,批量删除指定月份的sheet。
我一寻思这么简单,遂找到GPT代写。(实际是还在自学中,不会写。)
主要功能:
批量按月删除Excel中使用(月份+日期)命名的sheet。
已知问题:
使用PyInstaller打包成.exe文件360会报毒(关闭360正常运行),而且打包后文件较大。
[color=]各位大佬是否有解决方法,求教。
运行截图:
企业微信截图_1720059454436.png (123.49 KB, 下载次数: 0)
下载附件
2024-7-4 10:16 上传
代码:
[Python] 纯文本查看 复制代码import tkinter as tk
from tkinter import filedialog, messagebox
import openpyxl
import re
def delete_sheets_by_month(file_path, month):
try:
# 打开Excel文件
workbook = openpyxl.load_workbook(file_path)
# 获取所有sheet名称
sheet_names = workbook.sheetnames
# 定义日期格式的正则表达式(假设日期格式为X月XX日)
date_pattern = re.compile(r'^(\d+)月(\d+)日$')
# 遍历所有sheet
for sheet_name in sheet_names:
match = date_pattern.match(sheet_name)
if match:
sheet_month = int(match.group(1))
# 检查sheet的月份是否与用户输入的月份匹配
if sheet_month == month:
workbook.remove(workbook[sheet_name])
# 保存修改后的Excel文件
workbook.save(file_path)
messagebox.showinfo("成功", "已成功删除指定月份的sheet!")
except Exception as e:
messagebox.showerror("错误", f"发生错误: {str(e)}")
def browse_file():
file_path = filedialog.askopenfilename(filetypes=[("Excel files", "*.xlsx")])
if file_path:
file_entry.delete(0, tk.END)
file_entry.insert(0, file_path)
def start_deletion():
file_path = file_entry.get()
month = month_entry.get()
if file_path and month.isdigit() and 1