PDF в Excel: как на самом деле извлекаются таблицы

Вы видите таблицу в PDF: строки, столбцы, заголовок, итог внизу. Кажется очевидным, что конвертер должен перенести её прямо в таблицу Excel. Проблема в том, что в PDF нет таблицы. В нём есть инструкции нарисовать символы в одних местах и линии в других, а сетку, которую вы видите, складывают ваши глаза. Любой конвертер PDF в Excel вынужден восстанавливать таблицу из этих разрозненных кусочков, поэтому результаты бывают от идеальных до непригодных. В этом руководстве объясняется, как работает такое восстановление, где оно ломается и как в любом случае получить в Excel чистые числа.

Что на самом деле внутри таблицы в PDF

Возьмём строку счёта с тремя столбцами: «Консультации», «12 мар 2026» и «1 250,00». Внутри PDF это набор отдельных фрагментов текста, у каждого из которых есть координаты x и y. Фрагменты могут не совпадать со словами: одна программа записывает «1 250,00» одним куском, другая — как «1 2» и «50,00», а третья размещает каждый символ отдельно. Они даже не обязаны идти в порядке чтения. Некоторые программы рисуют всю таблицу по одному столбцу за раз.

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

Два способа, которыми конвертеры находят таблицу

Инструменты извлечения таблиц обычно используют один из двух методов. Инструменты с открытым исходным кодом, такие как Tabula и Camelot, называют их «lattice» (решётка) и «stream» (поток).

  • По линиям разметки (lattice). Конвертер собирает горизонтальные и вертикальные линии, находит их пересечения и считает каждую замкнутую область ячейкой. Затем он помещает каждый кусочек текста в ту ячейку, в которую тот попадает. Это очень хорошо работает для таблиц с полной сеткой. Метод не срабатывает, когда линий нет, когда линии разбиты на фрагменты, которые не совсем сходятся, или когда вместо границ используется заливка.
  • По пустому пространству (stream). Конвертер группирует текст в строки по высоте на странице, затем ищет вертикальные промежутки, которые последовательно проходят через строки, и считает их границами столбцов. Так обрабатываются таблицы без границ, например многие финансовые отчёты. Метод спотыкается, когда столбцы стоят близко друг к другу, когда столбец выровнен по центру, а не по краю, или когда длинное значение в одной строке перекрывает промежуток, разделяющий два столбца во всех остальных.

Оба метода эвристические. Они надёжны на чистых, правильных таблицах и ненадёжны на всём остальном, поэтому ни один конвертер не справляется со всеми таблицами.

Где извлечение таблиц ошибается

Даже когда столбцы найдены правильно, некоторые проблемы возникают снова и снова:

  • Переносы в ячейках. Описание, перенесённое на вторую строку, выглядит как новая строка, в которой заполнен только один столбец.
  • Объединённые и общие заголовки. Заголовок, стоящий над двумя столбцами, приходится отнести к одному из них или ни к одному.
  • Разрывы страниц. Таблица, продолжающаяся на следующей странице, повторяет заголовок, а строка может разорваться на границе страниц.
  • Числа, которые приходят как текст. Символы валют, разделители разрядов, отрицательные числа в скобках и знаки сносок рядом с числом могут помешать Excel распознать число. Десятичная точка, как в «1,250.00», распознаётся правильно, только если в вашем Excel используется тот же формат.
  • Неоднозначные даты. 03/04/2026 — это 3 апреля в одних странах и 4 марта в других, и Excel выберет вариант согласно вашим настройкам.
  • Шрифты без сопоставления с текстом. Некоторые PDF встраивают шрифты без таблицы, которая сопоставляет каждый глиф с символом. Отображаются они идеально, но при копировании или извлечении текста получается абракадабра.
  • Сканы. На отсканированной странице вообще нет текста, только его изображение, поэтому без предварительного OCR извлекать нечего.

Что делает наш инструмент «PDF в Excel»

Наш конвертер «PDF в Excel» работает в браузере, поэтому файл не загружается. Каждой странице PDF он отводит отдельный лист с именами «Страница 1», «Страница 2» и так далее. В столбец A он записывает каждую строку текста со страницы, сверху вниз, по одной строке текста в строке таблицы, а каждое изображение размещает в том месте страницы, где оно было нарисовано.

Он не пытается угадать, где находятся столбцы. Благодаря этому сохраняется каждая строка в порядке чтения, ничего не теряется и не попадает в неправильный столбец из-за неудачной догадки. Но это также значит, что строка таблицы попадает в одну ячейку, а её значения разделены одиночными пробелами, и разбивать её на столбцы приходится вам. Если PDF рисовал свою таблицу по одному столбцу за раз, значения одной строки могут вместо этого оказаться в соседних ячейках.

OCR здесь нет, поэтому отсканированная страница переносится как изображение, а не как текст. PDF, который открывается только с паролем, нужно сначала разблокировать.

Как разбить один столбец на настоящие столбцы в Excel

Для второй половины работы в Excel есть хорошие инструменты:

  • Текст по столбцам на вкладке «Данные» разбивает столбец по разделителю. Выберите «с разделителями», затем «пробел». Это хорошо работает, когда в самих значениях нет пробелов, что часто бывает в таблицах с числами и кодами. На последнем шаге с помощью кнопки «Подробнее» можно задать разделители целой и дробной части и разрядов, что исправляет числа вида «1,250.00».
  • Мгновенное заполнение (Ctrl+E) учится на примере. Введите в соседний столбец нужное значение из первой строки, нажмите Ctrl+E, и Excel заполнит остальное по тому же образцу.
  • Формулы в Excel для Microsoft 365. =ТЕКСТРАЗД(A2;" ") раскладывает строку по столбцам, а =ТЕКСТПОСЛЕ(A2;" ";-1) возвращает всё после последнего пробела — обычно это сумма в конце строки. Оберните результат в ЗНАЧЕН(), чтобы превратить его в число.

Excel для Microsoft 365 в Windows также умеет импортировать PDF напрямую: «Данные» > «Получить данные» > «Из файла» > «Из PDF». Он сам ищет таблицы, и его стоит попробовать на таблицах с чёткими границами.

Другие способы, которые стоит попробовать

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

Для таблицы с полной сеткой линий стоит попробовать «PDF в Word». Если таблица переносится как настоящая таблица Word, её можно скопировать в Excel, и ячейки останутся ячейками. Это также способ для отсканированной таблицы, ведь «PDF в Word» запускает OCR на отсканированных страницах.

Проверьте результат, прежде чем использовать его

Ошибки извлечения незаметны. Значение не в том столбце выглядит так же правдоподобно, как и в правильном. Прежде чем полагаться на извлечённые данные:

  • Сложите столбец с помощью СУММ и сравните результат с итогом, напечатанным в PDF. Если они совпадают, цифры почти наверняка перенесены правильно. Это лучшая из возможных проверок.
  • Сверьте количество строк с PDF и внимательно посмотрите на первую и последнюю строки каждой страницы, где разрывы страниц создают проблемы.
  • Поищите числа, сохранённые как текст. По умолчанию Excel выравнивает их по левому краю ячейки и отмечает маленьким зелёным треугольником.
  • Проверьте несколько дат вручную, особенно те, где день не больше 12.

Заключение

Таблица в PDF — это изображение таблицы, составленное из текста и линий, которые лишь выглядят связанными. Конвертеры восстанавливают её по линиям разметки или по пустому пространству, и оба метода ошибаются на нерегулярной вёрстке. Зная это, можно выбрать правильный путь: по возможности запросите исходные данные, а если нельзя — извлеките строки и разбейте их в Excel, и всегда проверяйте итоги, прежде чем цифры пойдут куда-то важное.

Нужен текст из PDF в таблице? Попробуйте «PDF в Excel».

← Назад в блог