openpyxl根据年列出每天、星期几、第几周

最难的是月头月位共用一周,怎样显示。

2025年星期一星期二星期三星期四星期五星期六星期日
1月第1周12345
1月第2周6789101112
1月第3周13141516171819
1月第4周20212223242526
1月第5周2728293031
2月第5周12
2月第6周3456789
2月第7周10111213141516
2月第8周17181920212223

from openpyxl import load_workbook
wb=load_workbook("周历-万年历.xlsx")
ws=wb.active
for i_r in range(2,70):#清除内容
    for i_c in range(1,10):
        ws.cell(i_r,i_c).value=None
year =int(input("请输入年份:"))
day_count = 0
for i in range(1900, year):#甲子年,1月1号是星期一,1900年是计年开始
    if (i % 4 == 0 and i % 100 != 0) or i % 400 == 0:
        day_count += 366
    else:
        day_count += 365
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
    a = [0,31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    year_day=366
else:
    a = [0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    year_day=365
week_ji = int((day_count) % 7)#上码是定位去年最后一天是星期几
day_year_total=week_ji-1#补齐第一周是上年占的天数,便于后续算出当天是第几周
q=1  #总行数
ws.cell(1,1).value=str(year)+'年'
for month in range(1,13):
    day_year_total+=a[month-1]
    day=1
    for day in range(1,a[month]+1):
        m,n=divmod(day+week_ji,7)
        if n==0:
            n=7
            m=m-1
        ws.cell(1+m+q,n+1).value=day
        week_count,useless=divmod((day_year_total+day),7)#这天是第几周
        ws.cell(1+m+q,1).value=str(month)+'月第'+str(week_count+1)+'周'
    week_ji=n
    if n==7:
        q=m+q
    else:
        q=m+q+1
wb.save("周历-万年历.xlsx")
wb.close()
 

要使用openpyxl获取Excel文件中的某一列,可以使用以下代码: ```python import openpyxl # 打开Excel文件 workbook = openpyxl.load_workbook('file.xlsx') # 获取第一个工作表 worksheet = workbook.worksheets<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)](https://download.youkuaiyun.com/download/weixin_38680625/14910549)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [python获取excel第二列内容并储存到列表](https://blog.youkuaiyun.com/weixin_35749545/article/details/129080636)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [利用python和openpyxl库检查excel文件中第二列产品名称是否有确切的个品牌名称,并提取相同的其他返回...](https://blog.youkuaiyun.com/weixin_35750747/article/details/129066883)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值