• Python:实现日历到excel文档


    背景

            日历是一种常见的工具,用于记录事件和显示日期。在编程中,可以使用Python编码来制作日历。

            Python提供了一些内置的模块和函数,使得制作日历变得更加简单。

            在本文,我们将探讨如何使用Python制作日历,并将日历输出到excel文档中。

    效果展示

    实现

            在代码中会用到calendar模块和openpyxl模块,其中calendar模块是python自带的,而openpyxl模块需要自行下载“pip install openpyxl”。

    import calendar

    import openpyxl

    from openpyxl.styles import Alignment, PatternFill, Font

    from openpyxl.utils import get_column_letter

    from openpyxl.drawing.image import Image

    from openpyxl.styles import Side, Border

    #year = int(input(“请输入年份:”))


     

    #calendar.setfirstweekday(firstweekday=6)

    ###设置表头所在起始行

    table_head_row = 3

    ##设置表内容所在起始行

    table_comment_row = table_head_row + 1


     

    # 创建一个工作䈬

    wb = openpyxl.Workbook()

    # 遍历12个月

    for i in range(1, 13):

        # 添加工作表

        sheet = wb.create_sheet(index=0, title=str(i) + '月')

        # 获取具体日期时间,设置表内容

        for j in range(len(calendar.monthcalendar(2023, i))):

            for k in range(len(calendar.monthcalendar(2023, i)[j])):

                value = calendar.monthcalendar(2023, i)[j][k]

                # 将0值变为空值

                if value == 0:

                    value = ''

                    sheet.cell(row=j + table_comment_row, column=k + 1).value = value

                else:

                    sheet.cell(row=j + table_comment_row, column=k + 1).value = value

                # 设置字体

                sheet.cell(row=j + table_comment_row, column=k + 1).font = Font(u'微软雅黑', size=11)

        # 单元格文字设置,右对齐,垂直居中

        align = Alignment(horizontal='right', vertical='center')

        # 单元格填充色属性设置

        fill = PatternFill("solid", fgColor="B9EBF7")

        # 对单元格进行颜色填充

        for k1 in range(1, 10):

            for k2 in range(1, 8):

                sheet.cell(row=k1, column=k2).fill = fill


     

        # 设置表头

        days = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六','星期日']

        num = 0

        for k3 in range(1, 8):

            sheet.cell(row=table_head_row, column=k3).value = days[num]

            sheet.cell(row=table_head_row, column=k3).alignment = align

            sheet.cell(row=table_head_row, column=k3).font = Font(u'微软雅黑', size=16)

            # 设置列宽12

            c_char = get_column_letter(k3)

            sheet.column_dimensions[get_column_letter(k3)].width = 18

            num += 1

        # 设置表头行高50

        sheet.row_dimensions[table_head_row].height = 50

        # 设置内容行高30

        for k4 in range(table_comment_row, table_comment_row + 6):

            sheet.row_dimensions[k4].height = 70


     

        # 设置表线条的样式和颜色 style=medium, thin, thick

        side = Side(style="thin", color="FF0000")

        # 设置表单元格的边框线条

        border = Border(top=side, bottom=side, left=side, right=side)

        for k5 in range(table_head_row, table_head_row + 7):

            for k6 in range(1, 8):

                sheet.cell(row=k5, column=k6).border = border


     

        # 添加年份及月份

        sheet.cell(row=1, column=1).value = '2023年' + str(i) + '月'


     

        # 设置年份及月份文本属性

        sheet.cell(row=1, column=1).font = Font(u'微软雅黑', size=14, bold=True, color='FF7887')

        sheet.cell(row=1, column=1).alignment = align


     

    # 保存文档

    wb.save('日历.xlsx')

    print("calendar finished!!")

    帮助

            如果在windows上没有安装pip,安装时可能会报错。

    请参照文章pip时报错:ImportError: cannot import name ‘InvalidSchemeCombination’解决

  • 相关阅读:
    安装Jenkins
    原型链污染攻击也称JavaScript Prototype 污染攻击
    基于中文金融知识的 LLaMA 系微调模型的智能问答系统:LLaMA大模型训练微调推理等详细教学
    string cow方法实现
    ERP是什么?
    软件测试/测试开发丨python 多态与super 学习笔记
    【Android-Jetpack进阶】3、ViewModel 视图模型:使用、源码解析
    异步加载JS的方法
    秘钥泄露(使用kali得到密码)
    LeetCode高频题:dfs排列组合问题,剪枝策略,参观展厅总时间120分钟,请你给出所有可能的参观方案的个数
  • 原文地址:https://blog.csdn.net/hhd1988/article/details/134045356