当前位置: 首页 > news >正文

影刀RPA Excel批注管理:添加与读取批注

影刀RPA Excel批注管理:添加与读取批注

作者:林焱

什么情况用什么

审核报表时需要给异常数据加备注说明,但又不希望备注显示在单元格里影响数据格式——批注(Comment)就是干这个的。在影刀RPA自动化流程中,经常需要批量添加批注标记数据来源、审核意见,或者读取已有批注提取审核信息。

适用场景:数据审核自动化、批量标注异常原因、读取批注提取审核意见、报表交接时自动添加说明。

怎么做

添加批注

店群矩阵自动化突破运营极限!

importopenpyxlfromopenpyxl.commentsimportComment wb=openpyxl.load_workbook(r"C:\Reports\audit.xlsx")ws=wb.active# 给单个单元格添加批注ws['D3'].comment=Comment("数据来源:7月销售系统导出\n核对人:张三","审核系统")# 批量添加批注:标记异常数据forrowinrange(2,ws.max_row+1):amount=ws.cell(row=row,column=4).value# 金额列ifamountisnotNoneandamount>100000:cell=ws.cell(row=row,column=4)cell.comment=Comment(f"大额交易提醒:金额{amount}元超过阈值10万\n请核实交易真实性","风控系统")wb.save(r"C:\Reports\audit.xlsx")

读取批注

# 读取所有批注wb=openpyxl.load_workbook(r"C:\Reports\audit.xlsx")ws=wb.active comments_data=[]forrowinws.iter_rows():forcellinrow:ifcell.comment:comments_data.append({'cell':cell.coordinate,'author':cell.comment.author,![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1e942b3f4cb54763bc4ff6d18d38af05.png#pic_center)'text':cell.comment.text,'row':cell.row,'col':cell.column})# 打印所有批注forcincomments_data:print(f"单元格{c['cell']}(作者:{c['author']}):{c['text']}")

批注带格式

fromopenpyxl.commentsimportCommentfromopenpyxl.comments.comment_textimportCommentText# 带换行和格式的批注rich_text=CommentText()rich_text.add_text("审核意见:\n",bold=True,size=11)rich_text.add_text("1. 数据异常,请核实\n",size=10,color="FF0000")rich_text.add_text("2. 已通知业务部门确认",size=10,color="0000FF")comment=Comment(rich_text,"审核员")comment.width=300# 批注框宽度comment.height=100# 批注框高度ws['D5'].comment=comment

提取批注生成审核报告

defextract_comments_to_report(excel_path,output_path):"""提取所有Sheet的批注,生成审核报告"""wb=openpyxl.load_workbook(excel_path)report_lines=["审核意见汇总报告","="*50,""]forwsinwb.worksheets:sheet_comments=[]forrowinws.iter_rows():forcellinrow:ifcell.comment:# 获取该行关键信息row_data=[]forcinws[row[0].row]:ifc.valueisnotNone:row_data.append(str(c.value))sheet_comments.append({'cell':cell.coordinate,'text':cell.comment.text,'author':cell.comment.author,'context':' | '.join(row_data[:5])# 前5列作为上下文})ifsheet_comments:![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4476fadba94743eeb814285d410b6713.png#pic_center)report_lines.append(f"\n【工作表:{ws.title}】")report_lines.append(f"共{len(sheet_comments)}条批注\n")fori,cinenumerate(sheet_comments,1):report_lines.append(f"{i}. 单元格{c['cell']}")report_lines.append(f" 作者:{c['author']}")report_lines.append(f" 批注:{c['text']}")report_lines.append(f" 行数据:{c['context']}")report_lines.append("")iflen(report_lines)<=3:report_lines.append("未发现批注。")withopen(output_path,'w',encoding='utf-8')asf:f.write('\n'.join(report_lines))returnoutput_path# 在影刀中调用extract_comments_to_report(r"C:\Reports\audit.xlsx",r"C:\Reports\audit_comments.txt")

批量清除批注

defclear_all_comments(file_path):"""清除所有批注"""wb=openpyxl.load_workbook(file_path)count=0forwsinwb.worksheets:forrowinws.iter_rows():forcellinrow:ifcell.comment:cell.comment=Nonecount+=1wb.save(file_path)returnf"已清除{count}条批注"

有什么坑

坑1:批注作者不能为空

# 错误:不传作者名ws['A1'].comment=Comment("这是批注内容")# 报错,author必填# 正确:必须指定作者ws['A1'].comment=Comment("这是批注内容","系统")

坑2:批注文本包含换行符显示异常

temu店群自动化报活动案例

在批注里用\n换行,但Excel打开后换行没生效——因为批注的换行需要特殊处理:

# 确保批注框设置为自动换行comment=Comment("第一行\n第二行\n第三行","系统")# openpyxl 3.x 默认支持\n换行,但如果不行:# 替代方案:用富文本fromopenpyxl.comments.comment_textimportCommentText ct=CommentText()ct.add_text("第一行\n")ct.add_text("第二行\n")ct.add_text("第三行")ws['A1'].comment=Comment(ct,"系统")

坑3:读取批注时文件被锁定

如果Excel文件正被打开,openpyxl读取批注时会报PermissionError。在影刀中需要先确保文件未被占用:

importosdefsafe_load_workbook(file_path):"""安全加载工作簿"""try:returnopenpyxl.load_workbook(file_path)exceptPermissionError:# 文件被占用,尝试复制后读取importshutil temp_path=file_path+'.tmp'shutil.copy2(file_path,temp_path)wb=openpyxl.load_workbook(temp_path)os.remove(temp_path)returnwb

坑4:批注数量过多导致文件打开缓慢

一个工作表添加了上千条批注,Excel打开时卡顿严重。批注本质是XML节点,数量过多会拖慢文件。建议:

# 数据量大时改用单独的"备注列"代替批注# 而不是给每个异常单元格都加批注# 方案:在第N列写备注文字forrowinrange(2,ws.max_row+1):amount=ws.cell(row=row,column=4).valueifamountisnotNoneandamount>100000:ws.cell(row=row,column=8).value=f"大额交易:{amount}元"# 备注列ws.cell(row=row,column=8).font=Font(color='FF0000')

坑5:批注框大小不自适应

默认批注框很小,长文本被截断看不到全部内容。需要手动设置大小:

comment=Comment("这是一段很长的批注内容,需要设置足够的宽度和高度才能完整显示...","系统")comment.width=400# 像素comment.height=150ws['A1'].comment=comment
http://www.jsqmd.com/news/1152108/

相关文章:

  • AI编程生产力断层真相:Claude Code的RAG架构缺陷 vs Cursor的AST-aware编辑器深度集成——资深架构师20年经验解构
  • 【SSM课程设计/毕业设计】基于前后端分离的学生干部事务审批系统的设计与实现 基于 SSM+Vue 的学生干部综合考评系统【附源码、数据库、万字文档】
  • 第十三:Python+Airtest+poco+pytest+pytest-html实现Android App自动化测试框架
  • 为什么你的SD出图总发灰?Stable Diffusion模型推荐暗藏玄机:3个被99%新手忽略的精度匹配陷阱
  • DDR4 和 DDR5 的价格太离谱了,准备继续用DDR3了
  • Core2vst – 苹果macOS虚拟跳线内录/直播跳线工具 使用教程
  • 百度网盘提取码终极指南:3秒解锁加密资源的免费神器
  • 芯片音乐电台来袭!Aleph Void 全天候直播,带你感受 8 位音效魅力
  • 2026Word转PDF完整实操指南:电脑自带免工具方案与免费无水印转换工具汇总
  • 领英好友乱成一锅粥?用这个分组备注功能,B2B 获客效率翻倍|附干货
  • Word2Vec 与 BERT 词嵌入对比:3个维度解析语义捕捉差异与适用场景
  • 【Stable Diffusion电商合规白皮书】:规避版权雷区、通过平台审核、过审率98.7%的提示词工程体系
  • Claude Code vs Cursor:从LLM token效率到IDE事件循环劫持——底层原理级拆解(附可复现的CPU/GPU内存占用热力图)
  • 注塑机效率看不准?警惕OEE计算中的常见陷阱
  • PG 日报|每位 DBA 必知的 PostgreSQL 5 大性能瓶颈
  • 标杆案例|AIGC宣发智能体,让影视营销迈入「一片一策」智能生产时代
  • FlashOfThought 闪念:一个把语音灵感自动整理成知识库的 AI 笔记系统
  • 选择社区直播系统的难点在哪?
  • 影刀RPA Excel单元格样式:字体、颜色、边框
  • 建筑AI睿兔大脑 |建筑企业的成本利润“黑箱“:为什么做了十个项目,不知道哪个赚钱?
  • 鸿蒙物理 108 篇 第八十篇 时空破界底层条件
  • C语言数据类型,看这一篇就够了(小白友好)
  • 佛山全屋定制定制品牌哪家好
  • 深圳职高学校哪家强
  • Qt 编译问题Error 127及syntax error + ld returned 1
  • 企业级Few-shot提示词治理框架(附金融/医疗/法律三大垂直领域提示词库v1.2)
  • Few-shot Learning提示词实战速成:从零到部署——1天掌握动态示例选择+上下文压缩双引擎
  • 状态反馈镇定问题:从能控分解到4阶系统实例的稳定性分析
  • 如何5分钟掌握SD-PPP:Photoshop AI插件终极指南
  • 鸿蒙物理 108 篇 第七十七篇 维度嵌套叠加原理