利用Power Automate批量读取PDF信息,并自动汇总到Excel
作者:Excel_sTudio 会计师、Office资深用户、PowerBI星球嘉宾。曾在上市公司担任财务经理等职务,现在某三乙公立中医院财务科担任科员
之前介绍过一个利用PowerQuery批量合并PDF表格的方法(PDF转Excel,我有两个秘籍,推荐给你!),这种只适合纯表格的PDF的简单合并,对于其他情况的PDF并不适合,比如批量从PDF格式的发票中提取部分关键信息并合并到excel。
PowerBI星球嘉宾Excel_sTudio老师,提供了一个更通用的方法,利用Power Automate批量读取PDF文件中的关键信息并导入到Excel,下面来看看是怎么做的吧~
正文
业务场景说明:
今天领导大毛发了小E同学许多PDF格式的TAX
INVOICE(发票),并要求小E今天下班前将发票信息整理成Excel格式。在经过短暂思考后小E同学选择了PAD(Power AutoMate Desktop,以下简称PAD)来完成这项工作。
下面是操作步骤:
第一步:确定需求
转换样本示例,这个PDF文档,有很多信息,假设我们只提取PDF中的部分信息,其他信息不需要(已虚化脱敏)。
第二步:整理好PDF文件和存放的Excel文档
记住路径:
C:\Users\1\Downloads\用PQ提取文件夹PDF发票信息\用PQ提取文件夹PDF发票信息
同时Excel设置好表头(如第一步PDF文件中的表格表头)。
第三步:利用Power Automate Desktop提取PDF信息
1、下载Power Automate
Desktop并创建流
下载地址:https://powerautomate.microsoft.com/zh-cn/robotic-process-automation
点击"免费开始",然后按提示操作即可。
如果不方便下载,也可以在PowerBI星球公众号后台发送“PAD”获取安装包。
下载安装完成后,注册账号并创建一个流。
2、提取PDF文件路径
选择PDF所在文件夹提取所有PDF格式后缀的文件路径并存入生成的变量Files中。
3、点击for each 循环
点击红圈的X可以选择上一步生成的Files变量 ,也可以手动输入。
这一步是遍历Files中的每个PDF文件(CurrentItem变量)。
4、将"PDF中提取表"功能拖拉到如下图的for each 循环中间,读取的PDF(变量CurrentItem)。
5、如上设置好后我们点击运行成功后双击查看“ExtractedPDFTables”所需要的数据在什么地方。
6、为了方便这里我们使用一个变量newvar来存储上一步找到内容ExtractedPDFTables[0].DataTable
(注意写法%ExtractedPDFTables[0].DataTable%)
7、这里分别设置Row(行)和Col(列)变量用作输出到Excel单元格行列参数。
8、在Excel操作区拖拉启动Excel到下图的位置,设置启动第二步整理好的Excel文件。
9、同上面第5小步一样运行查看newvar 变量中的“Item“、“Hsn”等项目所在的位置如下图:
行列都是0开始,4个项目分别在12行1列、12行3列、12行4列、12行6列。
10、开始写入Excel文档
同时设置col 1
依次循环4次将对应的值填入Excel指定单元格。
11、最后一步就是关闭与保存Excel。
12、动态运行效果如图,基本没有代码输入,全程都是拖拉流程和设置参数。
13、最后以下是脚本语言(复制后可直粘贴到PAD上修改下参数可用)。
Folder.GetFilesFolder: $'''C:\\Users\\1\\Downloads\\用PQ提取文件夹PDF发票信息\\用PQ提取文件夹PDF发票信息''' FileFilter: $'''*.pdf''' IncludeSubfolders:False FailOnAccessDenied: True SortBy1: Folder.SortBy.NoSort SortDescending1:False SortBy2: Folder.SortBy.NoSort SortDescending2: False SortBy3:Folder.SortBy.NoSort SortDescending3: False Files=> FilesSET Row TO 1Excel.LaunchExcel.LaunchAndOpenUnderExistingProcessPath: $'''C:\\Users\\1\\Downloads\\用PQ提取文件夹PDF发票信息\\用PQ提取文件夹PDF发票信息\\PDF.xlsx''' Visible: TrueReadOnly: False Instance=> ExcelInstanceLOOP FOREACHCurrentItem IN Files
Variables.IncreaseVariable Value: RowIncrementValue: 1
SET Col TO 1
Pdf.ExtractTablesFromPDF.ExtractTablesPDFFile: CurrentItem MultiPageTables: True SetFirstRowAsHeader: TrueExtractedPDFTables=> ExtractedPDFTables
SET NewVar TOExtractedPDFTables[0].DataTable
Excel.WriteToExcel.WriteCell Instance:ExcelInstance Value: NewVar[12][1] Column: Col Row: Row
Variables.IncreaseVariable Value: ColIncrementValue: 1
Excel.WriteToExcel.WriteCell Instance:ExcelInstance Value: NewVar[12][3] Column: Col Row: Row
Variables.IncreaseVariable Value: ColIncrementValue: 1
Excel.WriteToExcel.WriteCell Instance:ExcelInstance Value: NewVar[12][4] Column: Col Row: Row
Variables.IncreaseVariable Value: ColIncrementValue: 1
Excel.WriteToExcel.WriteCell Instance:ExcelInstance Value: NewVar[12][6] Column: Col Row: Row
Variables.IncreaseVariable Value: ColIncrementValue: 1ENDExcel.CloseExcel.CloseAndSaveInstance: ExcelInstance
对账得抑郁症,这篇文章或许能救你
与30万粉丝一起学ExcelVIP学员对账遇到的问题,左边是银行流水都是一笔一笔的,右边是系统导出的有些是合计数,而且两边的名称有点差异,怎么快速核对?这份表格,真的集齐对账的所有难点,名称不一致,凑金额。卢子仔细观察后,还真想出一个解决方法,不难。1.统一名称银行的名称是全称,系统的名称是简称,除了括号是中英文状态混合,其他都挺规范的。站长网2023-07-30 10:15:380000SAP分割评估的概念、应用场景及其系统实现介绍
概念介绍在了解SAP分割评估前,先了解下SAP的评估范围,我们知道在SAP中评估范围可以设置为公司层级或工厂层级。如果评估范围设置为公司层级,那么在公司下的同一物料都会使用相同的物料评估方法,比如,同一物料要么使用标准价,要么使用移动平均价。站长网2023-07-27 09:25:070006这个函数,比VLOOKUP好用10倍,不限版本,简单易懂
哈喽,大家好。许多人都看到过这对函数组合,却不知它比想象中更加强大!下面,就用八种经典应用来给大家介绍一下这个函数吧!此篇是入门级,适合新手查看。INDEX语法:(数组或区域,行号,列号)1、调取一列数据中的第几个数字公式=INDEX(B:B,6)可以得到B列的第六个数据;注解:5月不是这列的第五个,因为有个表头。站长网2023-07-28 14:20:250000如何注册微信公众号详细教程!强烈建议收藏!
在今天的社交媒体时代,微信公众号是一个非常重要自媒体平台,可以帮助企业和个人扩大业务范围,建立客户联系并提供更好的客户体验。只要你能运用好微信公众号,就可以吸引更多的关注,提高品牌知名度,增加销售额和建立客户忠诚度。站长网2023-07-28 16:00:420000