ParseJet

Как извлечь таблицу из PDF

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

Почему таблицы из PDF так трудно извлекать

В PDF нет понятия таблицы. То, что выглядит как строки и столбцы, — просто отдельные фрагменты текста, расставленные по координатам x/y, иногда с нарисованными между ними линиями. «Таблица» существует только у вас в глазах — в файле нет ни ячеек, ни строк, ни заголовка.

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

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

Способ 1: копирование в Excel (быстро, маленькие таблицы с линиями)

Для простой таблицы с чёткими линиями выделите её в просмотрщике PDF, скопируйте и вставьте в Excel или Google Sheets. Если всё оказалось в одном столбце, используйте Данные → Текст по столбцам (Excel) или Данные → Разделить текст на столбцы (Sheets), чтобы заново разбить значения.

Полезный приём: сначала вставьте текст в обычный текстовый редактор и посмотрите, какая структура уцелела. Если значения разделены одинаковыми пробелами или табуляциями, «Текст по столбцам» восстановит таблицу; если строки перемешаны или обрезаны, никакая разбивка уже не поможет.

Когда это работает: одностраничные таблицы с линиями и короткими значениями в ячейках. Когда не работает: объединённые ячейки, многострочный текст в ячейках, числа с разделителями тысяч, которые разрываются на части, и любые сканированные документы.

Способ 2: Excel Power Query или Word (встроенные средства, без сторонних инструментов)

Современный Excel умеет импортировать таблицы из PDF напрямую: Данные → Получить данные → Из файла → Из PDF. Excel сканирует документ, показывает список всех найденных таблиц с предпросмотром — выберите таблицу, нажмите «Загрузить», и она ляжет как нормальный диапазон в таблице. Это лучший встроенный вариант на Windows (нужна лицензия Microsoft 365 или 2021+, а в Excel для Mac функция доступна не во всех версиях).

Word тоже может открывать PDF напрямую (Файл → Открыть → выбрать PDF). Он конвертирует документ в редактируемый файл, и простые таблицы обычно выживают как настоящие таблицы Word, которые можно скопировать в Excel.

Когда это работает: PDF, созданные цифровым способом, с чётко расчерченными таблицами. Когда не работает: таблицы, разделённые только пробелами, часто пропускаются или бьются неправильно, многостраничные таблицы импортируются отдельными кусками, а из сканов не получается ничего — Power Query не делает OCR.

Способ 3: Python-библиотеки — camelot, tabula-py, pdfplumber (для разработчиков)

Если таблицы нужно извлекать из множества PDF программно, проверенные open-source-варианты — это camelot (лучше всего на таблицах с линиями, два режима детекции), tabula-py (обёртка над Java-движком Tabula, надёжна на однотипных макетах) и pdfplumber (низкоуровневый доступ к словам, линиям и прямоугольникам — лучший выбор, когда нужна собственная логика).

Минимальный пример с camelot: pip install camelot-py[cv], затем tables = camelot.read_pdf("report.pdf", pages="all") — и tables[0].df даст вам DataFrame pandas. Экспортируйте через .to_csv() или .to_excel().

Подвох в том, что у каждой библиотеки есть «любимый» стиль макета, а реальные документы стили смешивают. Готовьтесь подбирать настройки под каждое семейство документов (flavor="stream" против "lattice" в camelot, подсказки областей в tabula), и ни одна из них не справляется со сканированными PDF — пришлось бы сначала прогонять OCR и терять при этом разметку.

Более широкий взгляд на парсинг PDF в Python, не только таблиц, — в нашем руководстве по конвертации PDF в Markdown на Python.

Способ 4: извлечение с помощью AI (сканы, смешанные макеты, большие объёмы)

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

ParseJet работает именно так: загрузите PDF на parsejet.com/tools/pdf-to-markdown — и таблицы вернутся аккуратными Markdown-таблицами в порядке чтения, а сканированные страницы автоматически пройдут OCR. Если нужны данные, а не текст, API возвращает распарсенный документ в структурированном виде (смотрите инструмент PDF в JSON), а один POST-запрос на файл делает это практичным для пакетных пайплайнов.

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

Какой способ выбрать?

Одна маленькая таблица с линиями, один раз: копирование (способ 1), а если вставка перемешалась — Excel Power Query (способ 2).

Регулярные отчёты с одинаковым макетом: Power Query для тех, кто работает в таблицах, camelot или tabula-py (способ 3) для разработчиков — разовая настройка окупается на каждом следующем файле.

Сканы, фотографии или неаккуратные смешанные макеты: извлечение с помощью AI (способ 4) — реально единственный вариант, не сводящийся к перепечатыванию вручную.

Сотни документов с разными макетами: способ 4 через API — настройка библиотек из способа 3 под каждый документ не масштабируется дальше нескольких семейств макетов.

Извлекайте таблицы из любого PDF — включая сканы

Загрузите PDF и получите каждую таблицу аккуратным Markdown в порядке чтения; сканированные страницы автоматически проходят OCR. Попробуйте бесплатно, без регистрации.

Попробовать PDF в Markdown

Часто задаваемые вопросы

Как извлечь таблицу из PDF в Excel?

Сначала попробуйте встроенный импорт Excel: Данные → Получить данные → Из файла → Из PDF, затем выберите найденную таблицу. Если Excel её пропускает или портит — что типично для таблиц на пробелах и сканов, — извлеките таблицу AI-инструментом вроде ParseJet и вставьте Markdown-таблицу в Excel.

Можно ли извлечь таблицы из сканированного PDF?

Только инструментами с OCR. Копированию, Power Query и Python-библиотекам для таблиц нужен настоящий текст. Извлекатели на основе AI сначала прогоняют OCR, а затем восстанавливают таблицу — загрузите скан в ParseJet, и таблица вернётся текстом.

Какая Python-библиотека лучше всего извлекает таблицы из PDF?

camelot для таблиц с линиями, tabula-py для однотипных отчётных макетов, pdfplumber — когда нужна собственная низкоуровневая логика. Всем трём нужна настройка под каждый макет, и ни одна не работает со сканами, поэтому пайплайны с «грязным» входом обычно в итоге вызывают API парсинга.

Почему вставленная таблица оказывается в одном столбце?

Ваш просмотрщик PDF выдал фрагменты строк таблицы как обычные строки с пробелами, и Excel вставил каждую строку в одну ячейку. Используйте «Текст по столбцам», чтобы разбить заново, или способ, который восстанавливает структуру таблицы (Power Query или инструмент извлечения).

Как извлекаются таблицы с объединёнными ячейками?

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

Можно ли извлекать таблицы из множества PDF автоматически?

Да — отправляйте каждый файл POST-запросом в API парсинга. У ParseJet endpoint /v1/parse/auto/file возвращает документ с таблицами в Markdown (или структурированным JSON), а бесплатный API-аккаунт включает 300 кредитов в месяц.

Начните извлекать текст бесплатно

Регистрация не требуется. Обработайте первый файл за секунды.

Посмотреть тарифы