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».
← Назад в блог