影刀RPA Excel模板创建:标准报表模板复用

发布时间:2026/7/8 21:09:05

影刀RPA Excel模板创建:标准报表模板复用
影刀RPA Excel模板创建标准报表模板复用作者林焱什么情况用什么每周生成格式一样的周报、每月生成结构一样的月报——每次从零开始搭表格太浪费时间。在影刀RPA里可以先创建一个标准模板文件然后每次只填充数据格式、公式、图表都自动继承。这比每次用代码重建格式高效得多。适用场景周报/月报/季报标准化生成、多部门统一报表格式、自动化报表分发、固定格式的数据导出。怎么做创建模板文件拼多多店群自动化报活动上架importopenpyxlfromopenpyxl.stylesimportFont,PatternFill,Alignment,Border,Side,numbersdefcreate_report_template(output_path):创建标准报表模板wbopenpyxl.Workbook()# Sheet1: 数据明细 ws_datawb.active ws_data.title数据明细# 标题行ws_data.merge_cells(A1:F1)ws_data[A1]销售数据明细报表ws_data[A1].fontFont(name微软雅黑,size16,boldTrue,colorFFFFFF)ws_data[A1].fillPatternFill(start_color1F4E79,end_color1F4E79,fill_typesolid)ws_data[A1].alignmentAlignment(horizontalcenter,verticalcenter)ws_data.row_dimensions[1].height35# 表头headers[日期,地区,产品,数量,单价,金额]forcol,headerinenumerate(headers,1):cellws_data.cell(row2,columncol,valueheader)cell.fontFont(name微软雅黑,size11,boldTrue,colorFFFFFF)cell.fillPatternFill(start_color4472C4,end_color4472C4,fill_typesolid)cell.alignmentAlignment(horizontalcenter,verticalcenter)# 预设公式行第3行到第1002行forrowinrange(3,1003):# 金额 数量 * 单价ws_data.cell(rowrow,column6).valuefIF(AND(D{row},E{row}),D{row}*E{row},)# 数字格式forrowinrange(3,1003):ws_data.cell(rowrow,column4).number_format#,##0ws_data.cell(rowrow,column5).number_format#,##0.00ws_data.cell(rowrow,column6).number_format#,##0.00# 列宽col_widths{A:12,B:10,C:20,D:10,E:12,F:14}forcol,widthincol_widths.items():ws_data.column_dimensions[col].widthwidth# Sheet2: 汇总统计 ws_summarywb.create_sheet(汇总统计)ws_summary.merge_cells(A1:C1)ws_summary[A1]汇总统计ws_summary[A1].fontFont(name微软雅黑,size14,boldTrue,colorFFFFFF)ws_summary[A1].fillPatternFill(start_color1F4E79,end_color1F4E79,fill_typesolid)ws_summary[A1].alignmentAlignment(horizontalcenter,verticalcenter)# 统计项summary_items[(总订单数,COUNTA(数据明细!C3:C1002)),(总金额,SUM(数据明细!F3:F1002)),(平均金额,IFERROR(AVERAGE(数据明细!F3:F1002),0)),(最大金额,IFERROR(MAX(数据明细!F3:F1002),0)),(最小金额,IFERROR(MIN(数据明细!F3:F1002),0)),]fori,(label,formula)inenumerate(summary_items,2):ws_summary.cell(rowi,column1,valuelabel).fontFont(name微软雅黑,size11,boldTrue)cellws_summary.cell(rowi,column2,valueformula)cell.number_format#,##0.00ifi2else#,##0ws_summary.column_dimensions[A].width15ws_summary.column_dimensions[B].width18# Sheet3: 地区分析 ws_regionwb.create_sheet(地区分析)ws_region[A1]地区ws_region[B1]订单数ws_region[C1]总金额regions[北京,上海,广州,深圳,成都,杭州]fori,regioninenumerate(regions,2):ws_region.cell(rowi,column1,valueregion)ws_region.cell(rowi,column2,valuefCOUNTIF(数据明细!B:B,A{i}))ws_region.cell(rowi,column3,valuefSUMIF(数据明细!B:B,A{i},数据明细!F:F))# 保存模板wb.save(output_path)returnoutput_path# 创建模板create_report_template(rC:\Templates\sales_report_template.xlsx)使用模板填充数据importshutilimportopenpyxlimportpandasaspddeffill_template(template_path,data_df,output_path):用模板生成报表# 1. 复制模板shutil.copy2(template_path,output_path)# 2. 打开复制的模板wbopenpyxl.load_workbook(output_path)wswb[数据明细]# 3. 填充数据从第3行开始foridx,rowindata_df.iterrows():excel_rowidx3ws.cell(rowexcel_row,column1,valuerow[日期])ws.cell(rowexcel_row,column2,valuerow[地区])ws.cell(rowexcel_row,column3,valuerow[产品])ws.cell(rowexcel_row,column4,valuerow[数量])![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/611780f8b24a40a58333c4cfcb9fde21.png#pic_center)ws.cell(rowexcel_row,column5,valuerow[单价])# 金额列有公式不用手动填# 4. 保存wb.save(output_path)returnoutput_path# 读取数据dfpd.read_excel(rC:\Data\july_sales.xlsx)dfdf[[日期,地区,产品,数量,单价]]# 用模板生成报表fill_template(template_pathrC:\Templates\sales_report_template.xlsx,data_dfdf,output_pathrC:\Reports\2026年7月销售报表.xlsx)模板版本管理importosfromdatetimeimportdatetimedefgenerate_versioned_report(template_path,data_df,output_dir,report_name):生成带版本号的报表# 确保输出目录存在os.makedirs(output_dir,exist_okTrue)# 生成带日期的文件名date_strdatetime.now().strftime(%Y%m%d_%H%M%S)filenamef{report_name}_{date_str}.xlsxoutput_pathos.path.join(output_dir,filename)# 用模板填充fill_template(template_path,data_df,output_path)returnoutput_path# 使用outputgenerate_versioned_report(template_pathrC:\Templates\sales_report_template.xlsx,data_dfdf,output_dirrC:\Reports\历史版本,report_name销售月报)多模板选择defselect_template(report_type):根据报表类型选择模板templates{daily:rC:\Templates\daily_report.xlsx,weekly:rC:\Templates\weekly_report.xlsx,monthly:rC:\Templates\monthly_report.xlsx,quarterly:rC:\Templates\quarterly_report.xlsx,}ifreport_typenotintemplates:raiseValueError(f不支持的报表类型:{report_type})![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d32e123991284c798a05da3afba4da36.png#pic_center)ifnotos.path.exists(templates[report_type]):raiseFileNotFoundError(f模板文件不存在:{templates[report_type]})returntemplates[report_type]# 在影刀流程中# 【设置变量】report_type monthly# 【执行Python代码】选择模板并填充templateselect_template(monthly)fill_template(template,df,output_path)有什么坑坑1模板中的公式不自动计算openpyxl写入数据后模板里的公式不会自动重新计算需要在Excel中打开后才会更新# 问题填充数据后汇总统计的值还是0# 因为openpyxl不计算公式# 解决1用win32com触发计算importwin32com.client excelwin32com.client.Dispatch(Excel.Application)wbexcel.Workbooks.Open(output_path)excel.CalculateFull()# 强制重新计算所有公式![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/00613b2b84c74856befdfeeb56d1c1aa.png#pic_center)wb.Save()wb.Close()excel.Quit()# 解决2用data_onlyFalse读取在Python中算好值直接写入# 而不是依赖Excel公式坑2shutil.copy2复制后文件损坏某些情况下复制模板后文件打不开TEMU店群矩阵自动化运营核价报活动# 问题模板文件正被其他程序占用shutil.copy2(template_path,output_path)# 可能报错# 解决先关闭模板文件或用openpyxl另存![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3dd608618be744a68e7025174f0e0466.png#pic_center)wbopenpyxl.load_workbook(template_path)wb.save(output_path)# 用openpyxl另存更安全坑3模板数据行数不够模板预设了1000行公式但实际数据有1500行# 解决动态扩展公式行defensure_formula_rows(ws,template_last_row,needed_row,formula_col6):确保公式行数足够ifneeded_rowtemplate_last_row:return# 获取模板公式template_formulaws.cell(rowtemplate_last_row,columnformula_col).value# 扩展公式forrowinrange(template_last_row1,needed_row1):# 替换行号formulatemplate_formula.replace(str(template_last_row),str(row))ws.cell(rowrow,columnformula_col).valueformula# 复制格式ws.cell(rowrow,columnformula_col).number_format#,##0.00坑4模板中的图表引用失效模板里做了图表填充数据后图表数据源不对了# openpyxl对图表的支持有限建议用win32com操作# 或者在模板中把图表数据源设为整个列如A:A而不是固定行范围# 另一个方案用Python直接生成图表不依赖模板importmatplotlib.pyplotasplt fig,axplt.subplots(figsize(8,5))df.groupby(地区)[金额].sum().plot(kindbar,axax,color#4472C4)ax.set_title(各地区销售额)ax.set_ylabel(金额元)plt.tight_layout()plt.savefig(rC:\Reports\chart.png,dpi150)# 然后把图片插入Excelwswb[地区分析]ws.add_image(openpyxl.drawing.image.Image(rC:\Reports\chart.png),E2)坑5多用户同时使用模板冲突多个影刀流程同时用同一个模板生成报表文件锁冲突# 解决每个流程先复制模板到临时目录importtempfileimportuuiddefsafe_fill_template(template_path,data_df,output_path):安全的模板填充# 复制到临时文件temp_dirtempfile.gettempdir()temp_templateos.path.join(temp_dir,ftemplate_{uuid.uuid4().hex}.xlsx)shutil.copy2(template_path,temp_template)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e4da127d579b4bcbadc99b62a5e964ef.png#pic_center)try:# 用临时模板填充fill_template(temp_template,data_df,output_path)finally:# 清理临时文件ifos.path.exists(temp_template):os.remove(temp_template)returnoutput_path

相关新闻

CentOS 8.5.2111 物理机分区方案对比:自动、LVM与手动分区的3种策略与性能影响

CentOS 8.5.2111 物理机分区方案对比:自动、LVM与手动分区的3种策略与性能影响

2026/7/8 21:09:05

CentOS 8.5物理机磁盘分区策略深度解析:从自动配置到LVM实战指南在物理服务器部署CentOS 8.5时,磁盘分区方案的选择直接影响系统性能、数据安全性和未来扩展能力。本文将深入剖析自动分区、LVM逻辑卷管理和经典手动分区三种策略,通过实测数据…

Windows CMD tree 与 Git Bash tree 对比:5 个关键差异与适用场景

Windows CMD tree 与 Git Bash tree 对比:5 个关键差异与适用场景

2026/7/8 21:09:05

Windows CMD tree 与 Git Bash tree 对比:5 个关键差异与适用场景在跨平台开发与系统管理中,目录结构可视化工具的选择往往被忽视,却直接影响工作效率。Windows 原生 CMD 的tree命令与 Git Bash(或 WSL)环境中的tree工…

WSL2 Ubuntu 22.04 SSH 服务配置:3步实现 XShell 7 免密登录与开机自启

WSL2 Ubuntu 22.04 SSH 服务配置:3步实现 XShell 7 免密登录与开机自启

2026/7/8 21:09:05

WSL2 Ubuntu 22.04 SSH 服务深度配置指南:从免密登录到系统级自启优化1. 为什么需要配置WSL2的SSH服务?对于习惯使用XShell等专业终端工具的开发者而言,Windows Terminal虽然提供了基础的WSL访问能力,但在多会话管理、标签页操作、…

R(2+1)D 网络 PyTorch 复现:从 3D 卷积拆分到 Kinetics 数据集 82.3% 准确率

R(2+1)D 网络 PyTorch 复现:从 3D 卷积拆分到 Kinetics 数据集 82.3% 准确率

2026/7/8 22:29:08

R(21)D 网络 PyTorch 复现:从 3D 卷积拆分到 Kinetics 数据集 82.3% 准确率视频理解一直是计算机视觉领域的重要研究方向。随着深度学习的发展,3D卷积神经网络(3D CNN)逐渐成为处理视频数据的主流方法。然而,传统的3D …

CIFAR-10 图像分类:4种主流CNN架构(VGG16/ResNet18)在PyTorch 2.0下的性能基准测试

CIFAR-10 图像分类:4种主流CNN架构(VGG16/ResNet18)在PyTorch 2.0下的性能基准测试

2026/7/8 22:29:08

CIFAR-10图像分类:四大经典CNN架构在PyTorch 2.0下的全面性能评测当面对CIFAR-10这样的经典图像分类任务时,选择合适的卷积神经网络架构往往让开发者陷入两难:是追求更高的准确率,还是优先考虑计算效率?本文将通过VGG1…

免疫检查点调控 T 细胞耗竭机制与 Luminex 技术的肿瘤免疫研究应用

免疫检查点调控 T 细胞耗竭机制与 Luminex 技术的肿瘤免疫研究应用

2026/7/8 22:29:08

肿瘤免疫逃逸是恶性肿瘤发生发展的核心生物学特征,而 T 细胞功能耗竭是肿瘤实现免疫逃逸的关键环节。免疫检查点作为调控 T 细胞活化阈值与功能状态的核心 “分子刹车”,其异常激活与持续高表达是介导 T 细胞耗竭的核心分子基础。深入解析免疫检查点的调…

PInVerify:具身AI实例级指代验证离线基准

PInVerify:具身AI实例级指代验证离线基准

2026/7/8 22:29:08

1. 项目概述:这不是又一个“刷榜”数据集,而是一把量尺如果你最近在具身AI(Embodied AI)领域泡得久,大概率已经听过“物理AI”和“具身智能”这两个词被反复提起,甚至有人开始混淆——前者强调系统与真实物…

AI内衣换装软件本地部署指南:从环境配置到生产级优化

AI内衣换装软件本地部署指南:从环境配置到生产级优化

2026/7/8 22:29:08

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 1. 先搞清楚这个工具到底解决什么实际问题 看到"稳定商业AI内衣换装全流程软件"这个标题,很多人第一反应可能是…

DiffSynth-Engine:革命性扩散模型推理引擎,开启AI图像生成新纪元

DiffSynth-Engine:革命性扩散模型推理引擎,开启AI图像生成新纪元

2026/7/8 22:19:08

DiffSynth-Engine:革命性扩散模型推理引擎,开启AI图像生成新纪元 【免费下载链接】DiffSynth-Engine DiffSynth-Engine is a high-performance engine geared towards buidling efficient inference pipelines for diffusion models. 项目地址: https:…

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

2026/7/8 0:44:47

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…

6个月转型AI工程师:实战路径与核心技能

6个月转型AI工程师:实战路径与核心技能

2026/7/8 6:29:42

1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公…

YOLOv5模型剪枝与量化实战:边缘设备部署优化

YOLOv5模型剪枝与量化实战:边缘设备部署优化

2026/7/8 14:04:34

1. 项目背景与核心价值在计算机视觉领域,YOLOv5因其出色的实时检测性能成为工业界宠儿。但当我们尝试将其部署到边缘设备(如树莓派、Jetson Nano或手机终端)时,立刻会遇到两个致命问题:模型体积庞大(原始YO…

Qwen Code+Obsidian构建可执行的AI时代认知操作系统

Qwen Code+Obsidian构建可执行的AI时代认知操作系统

2026/7/8 0:07:15

1. 项目概述:这不是又一个笔记软件教程,而是一套可复用的“认知操作系统”搭建逻辑你有没有试过,在读完Andrej Karpathy那篇著名的《Software 2.0》之后,满脑子都是“神经网络即代码”的震撼,但合上网页,打…

校园服饰细分赛道测算程序,学生平价国风,机能穿搭市场规模预估。

校园服饰细分赛道测算程序,学生平价国风,机能穿搭市场规模预估。

2026/7/8 0:07:15

校园服饰细分赛道测算程序(Python)——学生平价国风 & 机能穿搭市场规模预估(TAM / SAM / SOM)一、实际应用场景描述(真实业务抽象)在《时尚产业与品牌创新》课程中,细分市场切入&#xff0…

Visual C++运行库完整解决方案:告别软件兼容性问题

Visual C++运行库完整解决方案:告别软件兼容性问题

2026/7/8 0:07:15

Visual C运行库完整解决方案:告别软件兼容性问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾为打开游戏时弹出的"DLL缺失"错误…