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’解决

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术探索者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值