影刀RPA自动化办公实战:钉钉日报自动填写+汇总统计
影刀RPA自动化办公实战钉钉日报自动填写汇总统计作者林焱|更新时间2026-06|难度中级|阅读时间约12分钟前言你们公司是不是也有这种制度每天下班前要在钉钉填日报周五还要填周报每天重复填写相同格式的内容既浪费时间又容易忘。本文用影刀RPA来解决这个问题自动抓取当天工作数据自动填写钉钉日报顺带生成周报汇总。第一章方案设计1.1 目标功能说明自动读取工作数据从Excel/系统自动获取当日工作量自动填写日报打开钉钉按格式填写日报内容周五自动汇总把本周5天的日报合并成周报定时触发每天17:30自动运行1.2 数据来源设计工作数据来源你选一种 方案A本地Excel表格最简单 方案B公司内部系统采集中等难度 方案CGit提交记录/JIRA/Teambition适合开发人员本文以**方案AExcel**为主线演示方案B/C在后面扩展。店群矩阵自动化突破运营极限第二章准备工作2.1 工作记录Excel格式新建work_log.xlsx格式如下列名说明示例date日期2026-06-10task_name任务名称完成XX功能开发category分类开发/测试/会议/文档hours耗时(小时)3.5status状态完成/进行中/待处理note备注可选有遇到问题才填2.2 钉钉日报格式约定今日工作内容 1. [分类] 任务名称 - X小时 - 状态 2. [分类] 任务名称 - X小时 - 状态 遇到问题 - 问题描述无则填无 明日计划 1. 计划事项第三章核心流程开发3.1 子流程读取今日工作数据子流程名:ReadTodayWork 输出参数:workItems(列表),totalHours(数字)# 确定今天日期今日日期获取当前日期()# 格式: 2026-06-10# 读取Excel打开Excel:D:/work/work_log.xlsx读取工作表:Sheet1结果变量:allData# 筛选今天的数据workItems[]totalHours0遍历 allData 的每一行asrow:如果 row[date]今日日期:workItems.追加(row)totalHours浮点数(row[hours])关闭Excel 如果 workItems 为空:工作项[{task_name:日常工作,category:其他,hours:8,status:完成}]totalHours8返回:workItems,totalHours3.2 子流程生成日报文本子流程名:GenerateDailyReport 输入参数:workItems(列表),totalHours(数字)输出参数:reportText(字符串)reportText今日工作内容\n# 生成工作条目序号1遍历 workItemsasitem:条目序号. [item[category]] item[task_name] - item[hours]小时 - item[status]\nreportText条目 序号1# 遇到问题筛选有note的条目problems遍历 workItemsasitem:如果 item[note]不为空:problems- item[note]\nreportText\n遇到问题\n如果 problems 为空:reportText- 无\n否则:reportTextproblems# 明日计划固定文字或从配置文件读取reportText\n明日计划\nreportText1. 继续推进当前迭代任务\nreportText2. 参加例行会议\nreportText\n今日工时totalHours小时返回:reportText3.3 主流程填写钉钉日报主流程:FillDingTalkReport# 1. 读取数据调用子流程:ReadTodayWork 输出:workItems,totalHours# 2. 生成日报文本调用子流程:GenerateDailyReport 输入:workItems,totalHours 输出:reportText# 3. 打开钉钉PC端尝试:# 先检查钉钉是否已打开窗口是否存在:钉钉如果 不存在:启动程序:C:/Program Files/DingTalk/DingTalk.exe等待:3000毫秒# 4. 进入工作界面激活窗口:钉钉等待:1000毫秒# 方式一通过快捷入口日志/日报功能点击://div[contains(class,sidebar)]//span[text()日志]等待:2000毫秒# 5. 新建日报点击://button[contains(text(),写日志)]或//div[contains(class,add-btn)]等待:2000毫秒# 6. 选择日报模板如果有多个模板如果 存在(//div[contains(text(),日报)]):点击://div[contains(text(),日报)]等待:1000毫秒# 7. 填写内容# 找到内容输入区域点击://div[contains(class,ql-editor)]或//div[contains(placeholder,请输入)]# 清空现有内容CtrlA Delete# 粘贴日报内容比逐字输入稳定设置剪贴板:reportText CtrlV 等待:500毫秒# 8. 提交点击://button[contains(text(),提交)]或//button[contains(text(),发布)]等待:2000毫秒# 9. 确认提交如果 存在(//button[text()确定]):点击://button[text()确定]# 10. 验证成功如果 存在(//div[contains(text(),提交成功)]):记录日志:日报提交成功消息提示:✅ 今日日报已自动提交否则:记录日志:日报提交状态未知请手动确认截图:D:/work/log/daily_report_今日日期.png异常处理:记录日志:日报提交失败: 错误信息 发送邮件通知:日报自动提交失败请手动处理第四章周报自动汇总4.1 周报逻辑每周五自动把本周5天的工作数据汇总成周报。子流程名:GenerateWeeklyReport 输出参数:weeklyText(字符串)# 计算本周日期范围今天获取当前日期()今天是周几今天.weekday()# 0周一, 4周五本周一今天-今天是周几天 本周五本周一4天# 读取本周所有工作记录打开Excel:D:/work/work_log.xlsx读取工作表:Sheet1weekData{}遍历 所有行:如果 本周一row[date]本周五:日期Keyrow[date]如果 日期Key 不在 weekData:weekData[日期Key][]weekData[日期Key].追加(row)# 生成周报文本weeklyText本周工作总结本周一 ~ 本周五\n\n# 统计数据分类统计{}总工时0完成任务数0遍历 weekDataas日期,任务列表:weeklyText【日期】\n遍历 任务列表as任务:weeklyText - [任务[category]] 任务[task_name]\n# 累计统计如果 任务[category]不在 分类统计:分类统计[任务[category]]0分类统计[任务[category]]浮点数(任务[hours])总工时浮点数(任务[hours])如果 任务[status]完成:完成任务数1# 数据统计weeklyText\n 本周数据统计\nweeklyText总工时总工时小时\nweeklyText完成任务完成任务数项\nweeklyText\n工时分布\n遍历 分类统计as分类,工时:weeklyText - 分类: 工时小时\nweeklyText\n下周计划\nweeklyText1. 继续推进当前项目\nweeklyText2. 完成积压的待处理任务\n返回:weeklyText4.2 在主流程中加入周报判断# 在主流程最后加入今天星期几获取星期几()# 返回 星期五如果 今天星期几星期五:调用子流程:GenerateWeeklyReport 输出:weeklyText # 填写周报与日报相同步骤改选周报模板调用子流程:FillDingTalkReport 输入:weeklyText,类型周报第五章定时触发配置5.1 使用影刀定时任务temu店群自动化报活动案例触发器配置 类型: 定时触发 触发方式: 每天 触发时间: 17:30 工作日模式: 仅工作日周一到周五 排除日期: 节假日列表 2026年国庆假期: 2026-10-01 ~ 2026-10-07 每年手动更新5.2 节假日自动排除# 在流程开始加入节假日判断从文件读取:D:/work/holidays.txt结果变量:holidayList 如果 今日日期 在 holidayList:记录日志:今天是法定节假日跳过日报退出流程# holidays.txt 格式每行一个日期:# 2026-10-01# 2026-10-02# ...第六章扩展——从其他系统获取数据6.1 方案B从公司内部系统采集# 如果公司有任务管理系统打开浏览器:https://内部系统地址/my-tasks登录如需要# 采集当日完成的任务等待元素出现://div[idtask-list]获取元素列表://tr[contains(class,completed)andtd[classdateandtext()今日日期]]结果变量:completedTasks # 整理成work_log格式遍历 completedTasksastask:task_name获取文本(task//td[classtitle])category获取文本(task//td[classtype])# ... 写入Excel6.2 方案C从Git提交记录获取# 适合开发人员执行命令:git log --oneline --since2026-06-10 00:00 --until2026-06-10 23:59工作目录:D:/projects/my-project结果变量:gitLog# 解析git log输出遍历 gitLog.按行分割()asline:如果 line 不为空:commit_hashline的前7位 commit_msgline的第8位后的内容 写入Excel:date:今日日期 task_name:commit_msg category:开发hours:1# 按commit数估算status:完成总结本文实现了一套全自动的钉钉日报/周报系统功能实现方式数据来源Excel/内部系统/Git三选一日报生成按模板自动格式化自动提交影刀操作钉钉PC端| 周报汇总 | 周五自动触发生成本周总结 || 定时运行 | 每天17:30仅工作日 || 节假日排除 | 维护holidays.txt文件 |这套方案每天帮你节省5-10分钟一年下来就是40小时够你干更有价值的事下一篇推荐《影刀RPA邮件自动化进阶分类归档智能回复》关注作者获取更多影刀RPA实战教程