前言#
Wakeup のカリキュラム表は医学部のカリキュラム表のオンラインインポートをサポートしていないため、このスクリプトを作成し、医学部のカリキュラム表を Wakeup のカリキュラム表にインポートする機能を実現しました。
使用方法#
- 医学部ポータルにログインし、サービスホール - マイカリキュラム表を選択し、「リストモード」をクリックして、「エクスポート」、「ファイルリストのエクスポート」を順番にクリックして、「マイカリキュラム表.xlsx」をダウンロードします。
- Converter.pyをダウンロードするか、以下のコードを直接使用して、カリキュラム表ファイルと同じディレクトリに移動し、実行します。
# -*- encoding:utf-8 -*-
#@Time : 2022/08/30 02:01:39
#@File : converter.py
#@Author : Arthals
#@Contact : [email protected]
#@Software : Visual Studio Code
from openpyxl import Workbook, load_workbook
import os
import re
# wb = Workbook()
# ws = wb.create_sheet('mysheet', 0)
# wb.save('test.xlsx')
# wb.close()
wb = load_workbook('マイカリキュラム表.xlsx')
ws = wb['sheet1']
maxRow = ws.max_row
maxCol = ws.max_column
def extractInterger(strin):
return int(re.findall(r'\d+', strin)[0])
def extractWeek(strin):
strin = re.sub(r"[周()]", "", strin)
weeks = re.sub(r",", r"、", strin)
return weeks
def extractDay(strin):
dayDic = {
"星期一": 1,
"星期二": 2,
"星期三": 3,
"星期四": 4,
"星期五": 5,
"星期六": 6,
"星期日": 7
}
return dayDic[strin]
courseList = []
for row in range(2, maxRow + 1):
courseName = ws.cell(row=row, column=2).value
courseStart = extractInterger(ws.cell(row=row, column=8).value)
courseEnd = extractInterger(ws.cell(row=row, column=9).value)
courseWeek = extractWeek(ws.cell(row=row, column=6).value)
courseDay = extractDay(ws.cell(row=row, column=7).value)
courseLocation = ws.cell(row=row, column=11).value
courseTeacher = ws.cell(row=row, column=10).value
courseList.append([
courseName, courseDay, courseStart, courseEnd, courseTeacher,
courseLocation, courseWeek
])
# print(courseList)
wb.close()
output = open("マイスケジュール.csv", "w+")
output.write("コース名,曜日,開始時限,終了時限,教師,場所,週数\n")
for course in courseList:
for info in range(len(course)):
course[info] = f'"{course[info]}"'
print(course)
output.write(",".join('%s' % id for id in (course)) + "\n")
output.close()
注意事項#
- このスクリプトは、組み込みライブラリ以外にも、xlsx ファイルの読み書きのために
openpyxl
ライブラリのインストールが必要です。実行中にこのライブラリが見つからないというエラーが発生した場合は、ターミナルまたは Windows ターミナルでpip3 install openpyxl
を使用してインストールしてください。 - CSV ファイルを Wakeup のカリキュラム表にインポートする方法については、Wakeup のカリキュラム表の公式チュートリアルを参照してください。
- 筆者はポータル上のカリキュラム表とクラスのカリキュラム表には実際にはいくつかの違いがあることに気付きましたが、これは教務の問題だと考えていますので、皆さんも実際の状況に応じて確認して修正してください。
- 何か問題があれば、筆者に連絡するか、この記事のコメント欄にコメントしてください。