Перейти к содержимому

Конвертировать PDF в Excel

Перенесите таблицы из PDF в настоящий .xlsx, который можно сортировать, фильтровать и суммировать, — восстановленный по самой странице.

  • Не сохраняется
  • Без очереди и ожидания
  • Без регистрации и водяных знаков

Как это работает

1

Добавьте PDF

Перетащите документ с нужной таблицей.

2

Конвертируйте

Строки определяются по общим базовым линиям, а столбцы — по тому, где на странице начинается текст.

3

Скачайте

По одному листу на страницу; файл открывается в Excel, Google Таблицах, Numbers и LibreOffice.

Как восстановить сетку там, где её нет

PDF не содержит таблиц. Он содержит символы в координатах, а линии, похожие на таблицу, — это нарисованная графика, никак не связанная с текстом внутри неё. Поэтому сетка вычисляется — по двум правилам, которые стоит знать точно. Строки берутся из общих базовых линий, причём вертикальная позиция округляется до интервалов в четыре пункта, чтобы верхний индекс или чуть приподнятый символ валюты не начинал собственную строку. Столбцы получаются так: собираются все различные левые края текста на странице, и любые два, отстоящие друг от друга не более чем на восемь пунктов, объединяются, — по всей странице, а не построчно, так что столбец, случайно пустой в одной строке, в остальных сохраняет своё место.

Поэтому самый трудный случай — числа, выровненные по правому краю, и об этом стоит сказать прямо, потому что именно здесь чаще всего разочаровываются. У столбца цифр, выровненных вправо, в каждой строке свой левый край — 9.99 начинается гораздо правее, чем 1,234,567.89, — и как только края расходятся больше чем на восемь пунктов, они читаются как разные столбцы. Поэтому финансовая таблица может оказаться разнесённой по нескольким столбцам там, где должен быть один. У столбцов, выровненных влево или по центру, такой проблемы нет. Два фрагмента текста, которые всё же попадают в одну ячейку, соединяются через пробел, а не затирают друг друга.

На выходе ячейкам назначается тип: всё, что корректно распознаётся как число, записывается числом и будет суммироваться, а всё остальное — текстом. Обычные бухгалтерские украшения не распознаются — разделитель тысяч, знак процента в конце, символ валюты или отрицательное число в скобках вроде (1,234), — поэтому такие ячейки приходят как текст, который выглядит числом, но отказывается суммироваться. Встроенная в Excel функция «Текст по столбцам» исправляет целый столбец таких ячеек за один проход.

Каждая страница становится отдельным листом с именем Page 1, Page 2 и так далее, а не сшивается в одну сплошную таблицу, — трёхстраничная таблица придёт тремя листами с повторяющимся заголовком. Переносятся только значения. Формул в PDF никогда не было, так что восстанавливать нечего, а заливку, границы, шрифты, объединённые ячейки и диаграммы мы намеренно не воссоздаём: если их угадывать, получится таблица, которая выглядит солидно, но незаметно ошибается.

Если нужно другое

Извлечение таблиц — настоящая исследовательская задача, и есть инструменты, которые больше ничем не занимаются. Tabula — то, что нужно, когда у таблиц есть линии: она читает нарисованные линии как сетку, а не вычисляет её по положению текста, и это сразу решает проблему чисел с выравниванием вправо. Она бесплатна, работает мышью и экспортирует в CSV. Camelot делает то же из Python — в режиме lattice для таблиц с линиями и в режиме stream для таблиц без них — и сообщает, насколько уверен в результате.

Когда вёрстка простая и нужно лишь сделать её читаемой, pdftotext -layout in.pdf out.txt из Poppler сохраняет отступы столбцов в виде простого текста, который сразу открывается в электронной таблице как данные фиксированной ширины, — и никакого вычисления сетки не требуется. А если PDF — это скан, ничего из этого не применимо: текста, который можно разместить, нет, и сначала нужен OCR.

Частые вопросы

Как таблица из PDF вообще может стать электронной таблицей?

В PDF нет понятия таблицы — только символы в координатах. Сетка восстанавливается: текст на общей базовой линии становится строкой, а левые края текста по всей странице группируются в столбцы, так что ячейка, пустая в одной строке, в остальных всё равно сохраняет своё место.

Насколько это точно?

Очень хорошо на чистых таблицах с линиями и ровными столбцами. Трудности возникают с объединёнными ячейками, текстом, переносящимся внутри ячейки, и столбцами, которые «гуляют» по странице, — всё это по-настоящему неоднозначно, если не знать смысла таблицы. Проверьте результат, прежде чем на него полагаться.

Числа остаются числами?

Да. Всё, что читается как число, записывается в числовую ячейку, так что итоги и формулы работают сразу, а не воспринимают всё как текст.

Где-нибудь сохраняется мой PDF?

Нет. Каждая страница читается без сохранения.

А если PDF отсканирован?

Из скана нечего извлекать — текста в нём нет. Сначала воспользуйтесь инструментом «Распознать текст в PDF», затем конвертируйте.

Полезно знать: Объединённые ячейки, многострочные ячейки и «гуляющие» столбцы — трудные случаи, после конвертации их может понадобиться поправить. Оформление, цвета, формулы и диаграммы не воссоздаются — переносятся значения. Каждая страница PDF становится отдельным листом, а не сшивается в одну длинную таблицу.

Разместите этот инструмент на своём сайте

Бесплатно для любого блога, страницы класса или справочной статьи. Вставьте один фрагмент кода — и посетители смогут пользоваться инструментом прямо на вашей странице.