利用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
怪不得手机的WiFi经常断网,原来是手机里的这个开关忘记打开了!
站长网2023-07-28 13:30:060000ps中如何分离图像色调,及什么是图像色调?
图像色调是指图像中的色彩整体效果,包括色调、亮度和饱和度等。在PS中,可以通过分离图像色调来对图像进行调整和优化。具体步骤如下:打开需要调整的图像,在图层面板中将背景图层复制一份。选择复制的图层,在菜单栏中选择“图像”->“模式”->“分离颜色”。在弹出的“分离颜色”对话框中,选择“CMYK”模式,并勾选“色调”复选框,取消其他复选框的勾选状态。站长网2023-07-27 12:10:580000正则匹配html开始标签和结束标签
HTML标签是支持嵌套的,怎么能够找到指定标签相对应的闭合标签是最重要的问题。思路:先匹配最前面的起始标签,假设是div(<div),接着一旦遇到嵌套div,就“压入堆栈”,后面如果遇到div闭合标签了,就“弹出堆栈”。如果遇到闭合标签的时候,堆栈里面已经没有东西了,那么匹配结束,此结束标签为正确的闭合标签。1、匹配任意闭合HTML标签的正则表达式0005Excel条件格式应用技巧:如何用图标集对数据分级标注
编按:条件格式是Excel里的一项基本功能,可以按照用户设定的条件及预先设置的格式更改单元格区域的外观。使用条件格式可帮助用户直观地解决有关数据的特定问题,突出显示所关注的单元格或单元格区域、强调异常值;使用数据条、色阶和图标集来直观地显示数据。今天和大家分享有关图标集的使用方法,下图所展示的是某班级学生考试成绩表,教师为方便查看学生成绩结构,需要把不同层次的成绩用某种标识区分开。站长网2023-07-28 11:01:410000用了这么多年Excel,才发现分列原来如此牛逼!
与30万粉丝一起学Excel分列是一个超级普通的功能,而用得好却能帮你解决很多难题。跟卢子来看看。1.透视表组合的时候,提示选定区域不能分组。遇到这种,一般都是因为日期为文本格式,可以通过分列改变格式。01日期时间选择区域,点数据,分列,下一步,勾选空格,完成。这样就将日期、时间拆分成两列。02纯日期选择区域,点数据,分列,完成。站长网2023-07-28 10:01:100000