ics文件
.ics是Microsoft Outlook 2002 或更高版本创建的 iCalendar 格式文件,ics文件支持PC、Android、iOS等进行日历日程导入
文件作用
由于教务系统导出的课程表为excel文件,打开excel课表或者截图有一点点繁琐,并且没有上课提醒
实现过程
excel课表解析
excel课表格式如下
根据课表的排版规律使用Apache POI框架对课表数据进行解析,根据课程表排版可知课程信息由合并单元格存储,这里的主要操作就是获取获取合并单元格中的课程信息,例如上课时间、地点等
/**
* 获取合并单元格的值
* @author dqp
* @param sheet
* @param row
* @param column
* @return
*/
public static String getMergedRegionValue(Sheet sheet, int row, int column) {
int sheetMergeCount = sheet.getNumMergedRegions();
for (int i = 0; i < sheetMergeCount; i++) {
CellRangeAddress ca = sheet.getMergedRegion(i);
int firstColumn = ca.getFirstColumn();
int lastColumn = ca.getLastColumn();
int firstRow = ca.getFirstRow();
int lastRow = ca.getLastRow();
if (row >= firstRow && row <= lastRow) {
if (column >= firstColumn && column <= lastColumn) {
Row fRow = sheet.getRow(firstRow);
Cell fCell = fRow.getCell(firstColumn);
return getCellValue(fCell);
}
}
}
return null;
}
数据获取完成以后就需要对有效数据进行筛选
ics文件生成
数据筛选完成以后,同样选用ical4j框架对每一条课程数据进行生成
后端实现
前面步骤已经实现了ics文件的导出,这里使用的是spring boot进行后端实现
前端实现
前端由我的室友帅丹完成
实现效果
目前实现对东油课表excel文件进行解析生成ics文件,并且还存在一些问题为解决,先凑合着用
项目地址
欢迎访问nepu-ical日历课程