将数据从 PDF 文件中的电子表格传输到 Microsoft Excel 工作表的任务总是“有趣”的。 特别是如果你没有像 FineReader 或类似的昂贵的识别软件。 直接复制通常不会带来任何好处,因为。 将复制的数据粘贴到工作表上后,它们很可能会“粘在一起”成一列。 因此,他们将不得不使用工具精心分离 按列显示文本 从标签 时间 (数据 - 文本到列).
当然,只能复制那些有文本层的PDF文件,即刚刚从纸质扫描到PDF的文档,这在原则上是行不通的。
但它并不那么难过,真的🙂
如果您有 Office 2013 或 2016,那么在几分钟内,无需其他程序,就可以将数据从 PDF 传输到 Microsoft Excel。 Word 和 Power Query 将在这方面为我们提供帮助。
例如,让我们以来自欧洲经济委员会网站的包含大量文本、公式和表格的 PDF 报告为例:
…并尝试在 Excel 中将其拉出,例如第一个表:
我们走吧!
步骤 1. 在 Word 中打开 PDF
出于某种原因,很少有人知道,但自 2013 年以来,Microsoft Word 已经学会了打开和识别 PDF 文件(甚至是扫描的文件,也就是说,没有文本层!)。 这是以完全标准的方式完成的:打开 Word,单击 文件——打开 (文件——打开) 并在窗口右下角的下拉列表中指定 PDF 格式。
然后选择我们需要的PDF文件并点击 可选 (打开). Word 告诉我们它将在此文档上运行 OCR 到文本:
我们同意,几秒钟后,我们将看到我们的 PDF 已在 Word 中打开以供编辑:
当然,设计、样式、字体、页眉和页脚等都会部分脱离文档,但这对我们来说并不重要——我们只需要表格中的数据。 原则上,在这个阶段,简单地将表格从已识别的文档复制到 Word 中,然后简单地将其粘贴到 Excel 中已经很诱人了。 有时它会起作用,但更多时候它会导致各种数据失真——例如,数字可以变成日期或保留文本,就像我们的例子一样,因为。 PDF 使用非分隔符:
所以让我们不要偷工减料,而是让一切变得更复杂一点,但是正确的。
第 2 步:将文档另存为网页
然后将接收到的数据加载到 Excel 中(通过 Power Query),我们在 Word 中的文档需要以网页格式保存——在这种情况下,这种格式是 Word 和 Excel 之间的一种共同点。
为此,请转到菜单 文件 - 另存为 (文件 - 另存为) 或按 键 F12 在键盘和打开的窗口中,选择文件类型 一个文件中的网页 (网页——单个文件):
保存后,您应该会得到一个带有 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 需要我们提供 XML,但我们实际上有 HTML 格式。 因此,在出现的下一个窗口中,您需要右键单击 Power Query 无法理解的文件并指定其格式:
之后,该文件将被正确识别,我们将看到它包含的所有表的列表:
您可以通过在数据列中单元格的白色背景(不是单词表!)中单击鼠标左键来查看表的内容。
定义所需表后,单击绿色单词 表 ——然后你“陷入”它的内容:
它仍然需要做几个简单的步骤来“梳理”它的内容,即:
- 删除不必要的列(右键单击列标题 - 删除)
- 用逗号替换点(选择列,右键单击 - 替换值)
- 删除标题中的等号(选择列,右键单击 - 替换值)
- 删除第一行 (主页 – 删除行 – 删除顶行)
- 删除空行 (首页 - 删除行 - 删除空行)
- 将第一行提升到表头(主页 – 使用第一行作为标题)
- 使用过滤器过滤掉不必要的数据
当表格恢复其正常形式时,可以使用命令将其卸载到工作表上 关闭并下载 (关闭并加载) on 主 标签。 我们将获得我们已经可以使用的美丽:
- 使用 Power Query 将列转换为表
- 将粘性文本拆分为列