小勤:我们每天都能收到供应商推送的pdf格式的燃油价格文件,怎么能方便地整合到一起做数据分析啊?
大海:现在Power BI支持pdf文件的数据导入了,所以非常方便啊。
- 1 - 打开功能
小勤:这么流弊!但怎么在”数据获取“功能里没看到从pdf文件导入数据的选项啊?
大海:目前这个还是预览功能,所以要现在选项里进行简单的设置,如下图所示:
小勤:原来这样。那具体怎么用呢?
- 2 - 单文件的导入
大海:其实,从pdf导入数据的总体操作跟从Excel导入是基本一样的。比如,我们先看一下从一个文件导入的情况:
这时,我们可以看到,打开pdf文件会得到(每页)2个内容选择项,一个是Table类,即表格,一个Page类,即全部页面内容,如下图所示:
小勤:每页都这样?为什么要这么分呢?
大海:对的。因为很多时候你可能只要其中的表格,这样直接读取就方便一些;而有时候你不仅需要其中的表格,还需要一些其他相关内容,这时候就要从Page页面文件中读取数据。这里,我们仅从表格中读取数据,所以勾选表格的数据后,单击“编辑”按钮。
小勤:识别出来的表格怎么跟我们想要的不太一样啊?第二列的内容放到一个新列里面去了。
大海:对的,这应该跟Power BI判断表格的标准有一定关系,所以我们还要整理一下。选中价格列及新增的Column3列,然后合并,如下图所示:
最后,修改一下合并后的数据类型:
小勤:这个操作倒简单,都是Power Query里面的基础知识。
大海:对的。Power BI的数据整理过程主要都是Power Query的知识应用而已。
- 3 - 多文件批量导入
小勤:那要批量导入多个pdf文件并整合,那该怎么办呢?
大海:还记得批量导入多个Excel文件并整合是怎么做的吗?
小勤:知道啊。你在文章《》里讲得很清楚的,简单来说就是从文件夹导入,然后用Excel.Workbook函数解析出数据,就可以合并了。
大海:那我们看一下这里读取pdf数据是生成的步骤里用了什么函数?
小勤:Pdf.Tables?
大海:对的。所以,对于Excel文件,使用Excel.Workbook进行数据解析,那么,对于pdf文件来说,就用Pdf.Tables来解析即可。
小勤:明白了,数据解析出来后,就可以对其中的表或页面内容进行筛选、整理了。
大海:嗯。所以,这里多个pdf文件的整合,也就比较简单了:
Step 01 从文件夹获取数据
Step 02 用Pdf.Tables函数解析文件内容
Step 03 展开数据并筛选所需类型数据
Step 04 按需要整理数据
4.1 从文件名中提取出油价日期
4.2 删除不需要的列
4.3 合并列
4.4 通过筛选的方式去掉原来的标题行
小勤:这个不能像Excel.Workbook函数那样加参数直接识别出标题行吗?
大海:目前Pdf.Tables函数是不支持这样的参数的,希望将来更加完善。
4.5 最后我们直接修改一下列名即可:
小勤:嗯。这样整合pdf文件的数据参与分析就方便多了。另外,如果是从page页面文件读取数据,要怎么整理?
大海:这就要看具体读出来的内容是什么样子的了。我们从前面可以看到,即使是针对page页面文件形式,读出来的仍然是一个表,也就是说,Pdf.Tables解析出来的文件,其实是根据一些分隔符(如空格)对文件内容进行分割,放入到一个表的不同行列单元格里,最终形成一张大表,然后要怎么整理就看实际需要了。
小勤:大概理解了,后面在实际工作中再深入学习,但实际都是Power Query功能的运用了。