Все статьи

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

Перенос счетов из PDF в Excel выглядит как небольшая задача. У вас есть папка с PDF-счетами. У каждого поставщика свой макет, свои названия полей и свой способ записи дат и сумм. А нужна одна таблица: номер счёта, дата, поставщик, сумма без НДС, НДС, итог. И нужно, чтобы ей можно было доверять.

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

Три способа

Способ Для чего подходит На что обратить внимание
Excel «Получить данные → Из PDF» (Excel для Microsoft 365 на Windows) несколько счетов с аккуратными таблицами для каждого макета — свои шаги; итоги никто не проверяет
Онлайн-конвертер разовый файл куда отправляются и где хранятся ваши счета; результат всё равно нужно проверять
Небольшой скрипт много счетов, разные поставщики, каждый месяц один раз нужно настроить под ваши макеты

Если вы получаете несколько счетов в месяц от одного поставщика, хватит Excel. Когда поставщиков несколько и это повторяется каждый месяц, скрипт окупается: правила задаются один раз, а запускать скрипт можно снова и снова.

Как выглядит хороший результат

Одна строка на каждый PDF, одинаковые столбцы для всех поставщиков, даты в едином формате (2026-09-03), суммы — обычными числами (1240.00), и ещё один столбец: требует проверки.

Этот последний столбец — самый важный. Хороший процесс не угадывает. Если у счёта нет номера или сумма без НДС плюс НДС не равна итогу, строка остаётся такой, как напечатана, и помечается. Решение принимает человек.

Как работает подход со скриптом

  1. Прочитать текст из каждого PDF. Счета, созданные бухгалтерскими программами, содержат настоящий текст, так что библиотека вроде pypdf может его прочитать.
  2. Найти каждое поле по его меткам. Одно и то же поле называется по-разному: Invoice No:, Facture n°, Rechnungsnummer; Subtotal, Total HT, Nettobetrag. Вы держите короткий список меток для каждого поля.
  3. Нормализовать числа и даты. 1,240.00, 1 240,00 € и 180,00 EUR — всё это суммы; 14/09/2026 и 22.09.2026 — обе даты. Договоритесь о порядке день/месяц до начала работы.
  4. Проверить арифметику. Сумма без НДС плюс НДС должны давать итог — с точностью до цента.
  5. Помечать, а не исправлять. Нет номера, нечитаемая дата, не сходящийся итог — строка попадает в список на проверку.

Минимальная версия шагов 1 и 4:

from pypdf import PdfReader

def pdf_text(path):
    return "\n".join(page.extract_text() or "" for page in PdfReader(path).pages)

def totals_ok(net, vat, total):
    return round(net + vat, 2) == round(total, 2)

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

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

Это тест на выдуманных данных, а не обещание по вашим счетам. Реальные папки приносят свои сюрпризы — потому столбец проверки и существует.

Типичные ловушки при переносе счетов из PDF в Excel

  • Запятая или точка в десятичной части. 1.240,00 и 1,240.00 — одна и та же сумма; 1,240 может быть чем угодно. Определите правило для каждого поставщика.
  • День и месяц. 03/04/2026 — это 3 апреля во Франции и 4 марта в США. Договоритесь о порядке до запуска.
  • Несколько ставок НДС в одном счёте. Одного столбца на сумму без НДС и одного на НДС недостаточно; храните строку на каждую ставку или итог с пометкой.
  • Кредит-ноты. Они должны попадать в таблицу отрицательными суммами, а не вторым счётом, удваивающим ваши расходы.
  • Валюта. Если поставщик выставляет счёт в другой валюте, сохраните столбец с валютой и конвертируйте потом — но никогда незаметно.

Пятиминутная проверка, прежде чем доверять таблице

  1. Количество строк равно количеству PDF.
  2. Сумма столбца итогов совпадает с тем, что показывает ваша бухгалтерия или банк за тот же период.
  3. Ни один номер счёта не встречается дважды.
  4. Откройте три случайных счёта и сравните их со строками.
  5. У каждой строки в списке на проверку есть решение: исправлено вручную или подтверждено как есть.

Ограничения, о которых стоит знать

  • Сканы — это картинки. Сначала нужно распознавание текста (OCR), а распознанные цифры требуют проверки.
  • Новые макеты требуют добавления их меток. Обычно быстро, но кто-то должен это сделать.
  • Необычные форматы чисел (например, три знака после запятой) нужно согласовать, а не угадывать.

Сделать самим или передать нам

Если вы уверенно работаете с Python, описанных шагов достаточно для старта. Демо на вымышленных счетах можно посмотреть на странице наших работ. Если вам проще отправить папку и получить обратно проверенную таблицу со списком того, что требует вашего внимания, — это наш сервис Документы — в таблицы. Когда файлы конфиденциальны, обработка может остаться на вашем компьютере или на нашем в ЕС — см. Свой ИИ без облака.

Вопросы

Считываются ли отсканированные счета так же?

Напрямую — нет. Скан — это изображение бумаги, поэтому текст сначала нужно распознать (OCR). После этого применяются те же правила, но каждую распознанную цифру стоит перепроверить.

Что делать, если у счёта нет номера или итоги не сходятся?

Молча «исправлять» нельзя. Строка остаётся такой, как напечатана, и помечается для решения человеком.

Покидают ли счета мой компьютер?

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

Контакты

Этот ящик читает один человек — тот же, кто делает то, что вы заказываете.

Опишите задачу

Напишите, что у вас есть и какой результат нужен, — даже если это одна небольшая задача. Техзадание не нужно: в течение 48 часов пришлём план и цену письменно, уточняющий вопрос или честно скажем, что задача не наша.

Укажите ситуацию, файлы или ссылки, срок, язык, границы приватности и бюджет, если он есть.

Файл (по желанию)
Файл не выбран

Бриф, фотография, таблица — то, что объяснит задачу быстрее слов. До 8 МБ, хранится у нашего хостинг-провайдера. Пожалуйста, не отправляйте через сайт чувствительные личные или медицинские документы.

Отправка заявки не создаёт заказ и не требует оплаты. Отвечаем в течение 48 часов. Удобнее email? contact@castel.studio

Поговорить с нами

Удобнее голосом или в мессенджере? Пишите и звоните — отвечает основатель студии.

Связаться в LinkedIn

Телефон · WhatsApp · Telegram

Франция+33 7 49 57 41 69WhatsAppTelegram

Украина+38 063 95 77 111WhatsAppTelegram

Удобнее через площадку?

Ту же работу можно заказать там — с безопасной оплатой площадки.

Соло-студия ИИ-систем в Ницце. Кто отвечает на ваше сообщение, тот и делает работу — без менеджеров-посредников. Файлы обрабатываются на нашей машине, а не в чужом облаке.

Ницца 06100, Франция · Открыть на карте →

SIREN 103 115 705