通过 Power Query 将数据从 PDF 导入 Excel

将数据从 PDF 文件中的电子表格传输到 Microsoft Excel 工作表的任务总是“有趣”的。 特别是如果你没有像 FineReader 或类似的昂贵的识别软件。 直接复制通常不会带来任何好处,因为。 将复制的数据粘贴到工作表上后,它们很可能会“粘在一起”成一列。 因此,他们将不得不使用工具精心分离 按列显示文本 从标签 时间 (数据 - 文本到列).

当然,只能复制那些有文本层的PDF文件,即刚刚从纸质扫描到PDF的文档,这在原则上是行不通的。

但它并不那么难过,真的🙂

如果您有 Office 2013 或 2016,那么在几分钟内,无需其他程序,就可以将数据从 PDF 传输到 Microsoft Excel。 Word 和 Power Query 将在这方面为我们提供帮助。

例如,让我们以来自欧洲经济委员会网站的包含大量文本、公式和表格的 PDF 报告为例:

通过 Power Query 将数据从 PDF 导入 Excel

…并尝试在 Excel 中将其拉出,例如第一个表:

通过 Power Query 将数据从 PDF 导入 Excel

我们走吧!

步骤 1. 在 Word 中打开 PDF

出于某种原因,很少有人知道,但自 2013 年以来,Microsoft Word 已经学会了打开和识别 PDF 文件(甚至是扫描的文件,也就是说,没有文本层!)。 这是以完全标准的方式完成的:打开 Word,单击 文件——打开 (文件——打开) 并在窗口右下角的下拉列表中指定 PDF 格式。

然后选择我们需要的PDF文件并点击 可选 (打开). Word 告诉我们它将在此文档上运行 OCR 到文本:

通过 Power Query 将数据从 PDF 导入 Excel

我们同意,几秒钟后,我们将看到我们的 PDF 已在 Word 中打开以供编辑:

通过 Power Query 将数据从 PDF 导入 Excel

当然,设计、样式、字体、页眉和页脚等都会部分脱离文档,但这对我们来说并不重要——我们只需要表格中的数据。 原则上,在这个阶段,简单地将表格从已识别的文档复制到 Word 中,然后简单地将其粘贴到 Excel 中已经很诱人了。 有时它会起作用,但更多时候它会导致各种数据失真——例如,数字可以变成日期或保留文本,就像我们的例子一样,因为。 PDF 使用非分隔符:

通过 Power Query 将数据从 PDF 导入 Excel

所以让我们不要偷工减料,而是让一切变得更复杂一点,但是正确的。

第 2 步:将文档另存为网页

然后将接收到的数据加载到 Excel 中(通过 Power Query),我们在 Word 中的文档需要以网页格式保存——在这种情况下,这种格式是 Word 和 Excel 之间的一种共同点。

为此,请转到菜单 文件 - 另存为 (文件 - 另存为) 或按 键 F12 在键盘和打开的窗口中,选择文件类型 一个文件中的网页 (网页——单个文件):

通过 Power Query 将数据从 PDF 导入 Excel

保存后,您应该会得到一个带有 mhtml 扩展名的文件(如果您在资源管理器中看到文件扩展名)。

第 3 阶段。通过 Power Query 将文件上传到 Excel

您可以直接在Excel中打开创建的MHTML文件,但是我们会立即获得PDF的所有内容,以及文本和一堆不必要的表格,其次,我们将再次由于不正确而丢失数据分隔符。 因此,我们将通过 Power Query 加载项导入 Excel。 这是一个完全免费的插件,您可以使用它从几乎任何来源(文件、文件夹、数据库、ERP 系统)将数据上传到 Excel,然后以各种可能的方式转换接收到的数据,使其具有所需的形状。

如果你有 Excel 2010-2013,那么你可以从微软官方网站下载 Power Query——安装后你会看到一个标签 电源查询. 如果您有 Excel 2016 或更高版本,则无需下载任何内容 - 默认情况下,所有功能都已内置到 Excel 中,并且位于选项卡上 时间 (日期) 在小组 下载并转换 (获取和转换).

所以我们要么去标签 时间,或在选项卡上 电源查询 并选择一个团队 获取数据 or 创建查询 - 从文件 - 从 XML. 要使 XML 文件不仅可见,请将窗口右下角下拉列表中的过滤器更改为 所有文件 (所有文件) 并指定我们的 MHTML 文件:

通过 Power Query 将数据从 PDF 导入 Excel

请注意,导入不会成功完成,因为。 Power Query 需要我们提供 XML,但我们实际上有 HTML 格式。 因此,在出现的下一个窗口中,您需要右键单击 Power Query 无法理解的文件并指定其格式:

通过 Power Query 将数据从 PDF 导入 Excel

之后,该文件将被正确识别,我们将看到它包含的所有表的列表:

通过 Power Query 将数据从 PDF 导入 Excel

您可以通过在数据列中单元格的白色背景(不是单词表!)中单击鼠标左键来查看表的内容。

定义所需表后,单击绿色单词 ——然后你“陷入”它的内容:

通过 Power Query 将数据从 PDF 导入 Excel

它仍然需要做几个简单的步骤来“梳理”它的内容,即:

  1. 删除不必要的列(右键单击列标题 - 删除)
  2. 用逗号替换点(选择列,右键单击 - 替换值)
  3. 删除标题中的等号(选择列,右键单击 - 替换值)
  4. 删除第一行 (主页 – 删除行 – 删除顶行)
  5. 删除空行 (首页 - 删除行 - 删除空行)
  6. 将第一行提升到表头(主页 – 使用第一行作为标题)
  7. 使用过滤器过滤掉不必要的数据

当表格恢复其正常形式时,可以使用命令将其卸载到工作表上 关闭并下载 (关闭并加载) on 标签。 我们将获得我们已经可以使用的美丽:

通过 Power Query 将数据从 PDF 导入 Excel

  • 使用 Power Query 将列转换为表
  • 将粘性文本拆分为列

发表评论