4、Excel自动化基础:读取Excel文件、写入数据到Excel、格式化单元格、常用Excel活动详解

Excel自动化,说白了就是RPA的吃饭家伙。我做了这么多年财务流程自动化,十个项目里有八个离不开Excel。你想想看,财务人员每天对着什么?报表、台账、对账单,全是Excel。

这一章,我就带你把Excel自动化的基本功打扎实。咱们不讲虚的,直接上干货。

4.1 读取Excel文件——别小看这一步

读取Excel,听起来简单吧?但我在项目中遇到过太多次翻车了。比如文件路径带空格、工作表名称有特殊字符、或者干脆是.xls和.xlsx混用。

在RPA里,读取Excel通常用「打开Excel」+「读取单元格」或「读取范围」这两个活动。我个人习惯这样搭配:

1. 使用「打开Excel」活动,指定文件路径
   - 注意:路径里不要有中文空格,最好用变量拼接
2. 使用「读取范围」活动,指定工作表名称和区域
   - 比如 "Sheet1" 和 "A1:C100"
3. 将读取结果存为DataTable变量
4. 最后别忘了「关闭Excel」

核心要点:

  • 读取前先判断文件是否存在——用「文件存在」活动
  • 工作表名称区分大小写,我吃过这个亏
  • 读取范围建议用「整个工作表」或「已使用范围」,别写死行数

嗯,这里要注意。如果你读取的是.xls格式(老版Excel),有些RPA工具需要额外安装插件。我建议统一用.xlsx,省心。

4.2 写入数据到Excel——别把数据写歪了

写入数据,比读取容易踩坑。为什么?因为你要考虑目标位置、是否覆盖、格式保留等问题。

我记得有一次做银行流水导入,客户要求每天把新数据追加到同一个Excel里。我一开始用「写入单元格」,结果每次都把旧数据覆盖了。后来改用「写入范围」,配合「查找最后一行」活动,才搞定。

写入数据的标准流程:

1. 打开目标Excel文件
2. 定位写入起始位置(比如A1,或者动态查找)
3. 使用「写入范围」活动,传入DataTable
4. 设置「添加头部」为True(如果需要表头)
5. 关闭并保存

我的小技巧:

写入前先清空目标区域。用「清除范围」活动,避免新旧数据混在一起。尤其是财务数据,多一个空格都可能对不平。

你可能会问:写入大量数据时会不会卡?会的。我建议超过1000行数据时,用「批量写入」或「数据表写入」活动,别一行一行写,效率差十倍。

4.3 格式化单元格——让报表看起来像人做的

财务领导最看重什么?格式。字体、颜色、边框、对齐方式,一个不对就会被退回重做。我刚开始做RPA时,觉得数据对就行了,结果被财务经理怼了一顿。

格式化单元格常用的活动包括:

活动名称 用途 常用属性
设置单元格格式 字体、字号、颜色、加粗 FontName, FontSize, Bold, Color
设置单元格边框 添加内外边框 BorderStyle, BorderColor
设置单元格对齐 水平/垂直居中、自动换行 HorizontalAlignment, VerticalAlignment
设置单元格背景色 填充颜色,比如表头用浅蓝色 BackgroundColor
设置列宽/行高 自适应或固定宽度 ColumnWidth, RowHeight

我曾经做过一个项目,要求每天生成销售报表,表头必须是深蓝色底、白色字、14号加粗。我写了一个格式化模板,每次生成后自动套用,再也没被投诉过。

避坑指南:

我曾经在循环里反复设置单元格格式,结果Excel文件越来越大,打开要半分钟。后来我改成:先写入所有数据,最后统一格式化。这样文件大小能减少70%。

4.4 常用Excel活动详解——这些你早晚用得上

除了读写和格式化,还有几个活动我几乎每个项目都用。咱们一个一个说。

4.4.1 查找数据

「查找数据表」活动,可以在Excel里按条件找数据。比如找所有金额大于10000的行。我个人习惯配合「筛选」活动一起用,效率更高。

4.4.2 排序

「排序数据表」活动,按某列升序或降序排列。注意:排序前最好备份原始数据,万一排错了还能恢复。

4.4.3 合并单元格

「合并单元格」活动,常用于制作报表标题。但合并后读取数据要小心,只有左上角单元格有值。

4.4.4 公式计算

「设置单元格公式」活动,可以写入SUM、AVERAGE等公式。我建议公式写完后,用「计算所有公式」活动刷新一下,确保结果正确。

4.4.5 图表生成

这个高级一点,但财务汇报经常用。用「创建图表」活动,指定数据范围和图表类型(柱状图、折线图等)。我一般生成后调整一下位置和大小,让排版更美观。

实战建议:

如果你要处理多个Excel文件,建议用「循环遍历文件夹」活动,配合「打开Excel」和「关闭Excel」,实现批量处理。我做过一个自动汇总50家分公司报表的流程,就是用这个思路,原来人工要干一整天,RPA跑15分钟搞定。

4.5 一个完整的例子——从读取到输出

光说不练假把式。我给你一个我实际用过的流程骨架:

1. 打开「销售数据.xlsx」
2. 读取「Sheet1」全部数据 → 存为 dtSales
3. 筛选 dtSales 中「金额」> 5000 的行
4. 打开「销售汇总.xlsx」
5. 清除「汇总表」原有数据
6. 写入筛选后的数据到「汇总表」A1
7. 格式化表头:深蓝底、白字、加粗
8. 设置金额列格式为「会计专用」
9. 添加合计行:=SUM(金额列)
10. 保存并关闭两个Excel
11. 发送邮件通知:报表已生成

你看,核心就是读取、处理、写入、格式化这四个步骤。把这个骨架练熟了,80%的Excel自动化场景你都能搞定。

最后说一句:

Excel自动化最忌讳「想一步到位」。我建议你先手动跑一遍流程,把每一步记下来,再转成RPA活动。这样不容易漏掉细节。嗯,这个习惯我一直保持到现在。

下一章,咱们聊PDF自动化。那个坑更多,但学会了也更有成就感。