登陆注册
6188

利用Power Automate批量读取PDF信息,并自动汇总到Excel

站长网2023-07-27 11:16:4515

作者: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

00015
评论列表
共(0)条