使用 Python 自动化生成工作日历 Excel 表格

使用 Python 自动化生成工作日历 Excel 表格

在日常工作中,我们经常需要记录和统计每天的工作情况,包括早间工作、下午工作、晚上工作,以及遇到的问题点和是否解决等。手动维护这个工作日历既耗时又容易出错,因此我们可以使用 Python 来自动化这个过程。
在这里插入图片描述

功能需求

我们希望实现以下功能:

  1. 允许用户选择生成工作日历的年份和月份。
  2. 根据选定的年月,自动生成一个 Excel 表格,第一行包含以下标题:
    • 日期
    • 早间工作
    • 下午工作
    • 晚上工作
    • 问题点
    • 是否解决
    • 工作比例
  3. 从选定年月的第一天开始,每天占一行,直到该月最后一天。
  4. 如果遇到周末或节假日,使用不同的背景色进行区分。
    C:\pythoncode\new\weekreport.py

实现过程

为了实现上述功能,我们使用了 Python 的 wxPython 库来创建一个简单的 GUI 程序,并利用 openpyxl 库来生成和操作 Excel 文件。

首先,我们创建了一个 DateInputDialog 类,用于弹出一个对话框,让用户选择年份和月份:

class DateInputDialog(wx.Dialog):
    def __init__(self, parent):
        super().__init__(parent, title="选择年月")
        self.year = None
        self.month = None

        # 创建年份和月份选择器
        year_choices = [str(i) for i in range(2023, 2026)]
        self.year_picker = wx.Choice(self, choices=year_choices)
        self.month_picker = wx.Choice(self, choices=["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"])

        # 创建确认和取消按钮
        btn_sizer = wx.BoxSizer(wx.HORIZONTAL)
        confirm_btn = wx.Button(self, label="确认")
        cancel_btn = wx.Button(self, label="取消")
        btn_sizer.Add(confirm_btn, 0, wx.ALL, 5)
        btn_sizer.Add(cancel_btn, 0, wx.ALL, 5)

        # 创建整体布局
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(wx.StaticText(self, label="选择年份:"), 0, wx.ALL, 5)
        sizer.Add(self.year_picker, 0, wx.ALL, 5)
        sizer.Add(wx.StaticText(self, label="选择月份:"), 0, wx.ALL, 5)
        sizer.Add(self.month_picker, 0, wx.ALL, 5)
        sizer.Add(btn_sizer, 0, wx.ALL | wx.ALIGN_CENTER, 5)
        self.SetSizer(sizer)

        confirm_btn.Bind(wx.EVT_BUTTON, self.on_confirm)
        cancel_btn.Bind(wx.EVT_BUTTON, self.on_cancel
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值