时间线
Day1
序号 | 内容 | 说明 |
|---|
1 | 教室排课总表 | 课表的分析 |
2 | 课表列对应关系 | 对应行列内容 |
3 | 节次划分 | 上午下午晚上节次划分 |
4 | 周次格式 | 单双周识别 |
5 | Excel读取方式 | |
6 | PowerShell差异 | 7和5的版本 |
7 | Node.js安装 | |
8 | Python安装 | |
Day2
序号 | 内容 | 说明 |
|---|
1 | 腾讯文档的读取 | 通过技能调用API读取 |
2 | 安装腾讯为文档技能 | 解决权限问题 |
3 | 告诉我是谁 | |
4 | 解决数据截断问题 | 超过99行数据截断 |
Day3
序号 | 内容 | 说明 |
|---|
1 | 校历读取 | |
2 | 腾讯文档添加数据操作 | 解决前期出错问题 |
3 | 反馈npx skills乱码 | |
4 | 反馈任务栏无法关闭 | |
5 | 创建自动化任务 | 每日提醒今天课程天气 |
6 | 天气插件安装 | |
7 | git安装 | |
8 | 中文路径乱码 | |
9 | 备份数据 | 方便迁移 |
Day4
序号 | 内容 | 说明 |
|---|
1 | 迁移到集群服务器 | |
2 | 纠错 | 备份文件不能100%的恢复,重复纠错上述错误 |
Day5
问题处理
1
问题 | 原因 | 解决方式 |
|---|
列号错误 | 误以为周四是第5列 | 先读表头确认:周四=第6列(Col6) |
数据截断 | 用 .Text读取长文本单元格会截断 | 改用 .Value2属性读取完整内容 |
单双周遗漏 | 未处理 (单) (双)标记 | 增加奇偶周判断逻辑 |
周次误判 | 简单的范围匹配,未考虑复杂格式 | 处理逗号分隔、单双周等复杂周次 |
腾讯文档CSV乱码 | PowerShell5.x默认ANSI编码,文件是UTF-8 | 改用 Node.js读取 |
Invoke-RestMethod乱码 | PowerShell会静默将UTF-8 body转为GBK | 改用 Node.js https模块调用API |
PowerShell引号转义 | JSON参数中引号转义复杂 | 用变量传参避免转义问题 |
课表文件扩展名 | 实际是OLE2格式但扩展名不对 | 必须使用 .xls扩展名 |
正则匹配不准确 | 只匹配简单的 (\d+)-(\d+)周 | 处理多段范围、单双周等复杂格式 |
核心经验
验证优先:读取数据前先验证结构(表头、行列对应)
了解工具限制:PowerShell 5.x 中文支持差,优先用Node.js
考虑边界情况:周次格式多样,不能只做简单匹配
测试驱动:复杂逻辑先用小数据验证再批量执行