将课程表导入日历,实现电脑手机日程同步

文章介绍了一个使用Python3.x环境的脚本,该脚本解析Excel课程表并生成ICS文件,以便将课程信息导入到日历应用中。用户需要编辑配置文件以匹配自己的课程时间,脚本会对Excel表格进行检查并生成JSON文件,之后通过main.py将数据转换为ICS格式,日历应用可以识别并设置提醒。在Windows10中可能遇到时间显示问题,建议使用OutlookApp导入解决。
摘要由CSDN通过智能技术生成

写在前面:我运行时环境为python3.x环境,需自行配置,如果一定要在2.x环境运行的话,代码里有修改注释,源代码是在网络上找的((又到了每年此刻,教你把课程表导入日历 - 少数派 (sspai.com)))下载后修改了一些问题(包括修改为3.x运行环境)
原作者代码几乎完全没有注释,遇到问题时去啃代码也是蛮痛苦的。

另外此脚本不一定只能用于课程表,如果有长期的需要以周为单位进行的事务的话,也可以使用此脚本快捷的转换为ICS文件导入日历,只需稍微修改配置信息即可
同步到日历后也有一些好处,比如装x,如查看课程表时不再需要连接网络,并且上课前日历会自动提醒(可设置提前多久),电脑查看也很方便,如下图
日历截图

Gitee代码链接: 课程表导入日历

开始

实现思路:将课程信息输入Excel表格,使用Python解析表格文件并输出ICS文件,将课程转换为日历中的日程信息,使用日历打开ICS文件完成导入
主要代码文件如下:
文件截图

  • 编辑conf_classTime.json文件中的数据,其中数据代表着第几节课,课程开始时间,结束时间

    这个我已经按照我自己实际情况编辑好了,使用的是学校的作息时间,其他学校根据实际去改

  • 编辑classInfo.xlsx文件,其中截图的各列数据意义如下

    文件截图

    classNamestartWeekendWeekweekdayclassTimeclassroom
    课程名称第几周开始第几周结束星期几上课第几节上课教室
    • 其中的classTIme对应conf_classTime.json文件中的数据,从1开始数,如classTimexlsx文件中为1,表示这节课的上课时间为conf_classTime.json文件中的第一条数据(如下图)
      代码截图
    • 压缩包里的xlsx文件中的数据直接删除就好,是我测试时的数据
  • 运行excelReader.py文件,注意运行过程中需要输入0继续,完成后会生成一个conf_classInfo.json文件

    注意在运行之前最好先把文件夹中的conf_classInfo.json文件删除

    运行此文件需要安装xlrd软件包,且必须安装1.2.0版本的包,最新版本不支持读取此表格文件

    运行时会出现下列内容,做为检查数据列和上一步配置的excel文件表头是否一一对应,一般输入数字零,然后回车即可完成运行
    运行截图

    运行完成后生成文件图片如图:文件截图

  • 运行main.py文件,中间需要输入本学期开学第一天的时间(格式为20020101)和选择日历提前多久提示上课,完成后会生成一个class.ics文件

    同样在运行前最好先把原有的class.ics文件删除

    正常运行时的情况,蓝色文字为输入的内容:

    在这里插入图片描述

    生成的文件:文件截图

  • 电脑直接双击打开class.ics文件即可,win10系统会自动导入,其他的大同小异,手机也可以直接打开文件,选择使用手机日历打开,即可保存到手机日历中。

    注意win10系统打开后可能会出现所有时间都提前一个小时的情况,这个是win10日历固有的问题,截止书写这句话的时候win10日历尚未解决该问题

    解决方案:下载Outlook邮箱的手机app,将class.ics文件发送到手机,打开时选择使用outlook打开即可

    在这里插入图片描述
    注意手机outlook登录的邮箱账号需要和电脑使用的是同一个邮箱账号,否则无法同步到电脑。

    ps: outlook导入日历时最好导入到新建的空白日历中,默认的日历不可删除,且outlook邮箱不支持批量删除日历数据,数据如果出错的话会很麻烦。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值