Как из ПДФ сделать Эксель: прайс с артикулами и ценами
Как из ПДФ сделать Эксель: импортируем таблицу через Power Query или Acrobat, сохраняем артикулы с нулями и сверяем цены, количество и суммы трёх строк.
Денис
Продакт LibraChat
7 мин чтения
Артикул `00127` и число `127` выглядят почти одинаково, пока по ним не начинают искать товар. Поэтому вопрос, как из ПДФ сделать Эксель, я заканчиваю проверкой данных. Открыть красивый лист мало. Нужно сохранить код позиции, получить числа для расчёта и убедиться, что строка не разъехалась между столбцами.
Для разбора возьму условный прайс аксессуаров настольного клуба. Три контрольные строки ниже составлены вручную: это ориентир для проверки, а не результат проведённой конвертации. Покажу два пути переноса и объясню, что сверять в полученной книге.
Как из ПДФ сделать Эксель: сначала выбираю подходящий путь
Если в настольном Excel для Windows доступен источник PDF, можно загрузить таблицу через Power Query. Само наличие Excel не гарантирует этот пункт: набор источников зависит от выпуска и платформы. Когда команды нет, сначала проверь возможности своей версии, а затем выбирай другой путь переноса.
Второй вариант — экспорт в XLSX через Acrobat с доступной функцией конвертации. Бесплатное чтение PDF не означает бесплатный экспорт: официальная инструкция Reader требует платную подписку на Adobe Acrobat Export PDF. Конкретные условия доступа стоит выяснить до работы с большим документом.
Я также смотрю на саму страницу. Если вместо текста передо мной скан, нужен путь с распознаванием. В настройках экспорта Acrobat предусмотрены распознавание изображённого текста и выбор языка. Это не гарантия правильных артикулов: похожие символы и мелкие цифры всё равно придётся сверить с оригиналом.
До импорта я оставляю исходный прайс рядом. В нашем случае важно сохранить пять полей: артикул, название, цену, количество и сумму. Оформление страницы вторично. Если заголовок магазина занимает три объединённые строки, это ещё не значит, что такие же строки нужны в рабочей таблице.
В Навигаторе просмотри найденные таблицы и нужный фрагмент.
Выбери Преобразовать данные, если нужно проверить столбцы и типы; Загрузить — для загрузки выбранного результата.
После подготовки данных загрузи их на лист и сохрани книгу в XLSX.
Названия отдельных элементов могут отличаться по языку интерфейса. Мне важен порядок: выбрать источник, увидеть предварительный результат и только потом принять таблицу. Первая найденная область не обязательно соответствует всему прайсу.
Например, в документе может быть несколько страниц с одинаковой шапкой. Нужно проверить последнюю строку одной страницы и первую строку следующей. В рабочую таблицу не должны незаметно попасть повторный заголовок или номер страницы. Но и удалять все похожие строки подряд нельзя: два разных товара иногда имеют одинаковые названия.
Я сначала сравнил бы небольшую область с исходником. Если название перенесено на две строки, убедись, что обе части относятся к одному артикулу. Пустая ячейка рядом может означать продолжение описания, а может быть действительно пропущенным значением. Решение нужно брать из страницы, а не из удобства заполнения.
Три строки, на которых я принимаю результат
В нашем прайсе заданы следующие значения. Цены условные и не описывают предложения какого-либо магазина.
Артикул · Позиция · Цена, ₽ · Количество · Сумма, ₽
`00127` — Пакет протекторов — 350,50 — 2 — 701,00
`00128` — Набор кубиков — 299,00 — 3 — 897,00
`01002` — Мешочек — 145,25 — 4 — 581,00
Я проверил арифметику отдельно: `350,50 × 2 = 701`, `299 × 3 = 897`, `145,25 × 4 = 581`. Общая сумма — `2179`, количество — `9`. Это контроль для нашей модели, а не доказательство правильности неизвестного импортированного файла.
Начинаю с артикулов. Для них нужен текстовый тип: начальные нули являются частью кода, с которым я работаю. Если раннее преобразование уже превратило `00127` в `127`, простая последующая смена типа на текст нули не вернёт. Нужно вернуться к шагу, где исходное значение ещё сохранено, либо повторить импорт с правильным типом столбца.
Я не дописываю два нуля ко всем коротким значениям наугад. Мы знаем длину только показанных кодов. В настоящем прайсе другая позиция может иметь иной формат, и такая массовая правка создаст новый неверный артикул.
Затем проверяю, что цены и количество пригодны для арифметики. Видимая запись `350,50` может остаться текстом. Если текстовые числа интерпретируются по другому региональному формату, в Power Query есть изменение типа с указанием локали — Using Locale. Выбирают тип и формат, соответствующие исходным данным, затем сверяют конкретное значение. Одной замены отображения ячейки для такой проверки недостаточно.
Для итогов пригодится разбор суммы в Excel. Но совпавшая сумма не отменяет проверки артикулов: один товар мог потеряться, а другой попасть дважды с той же ценой. Я проверяю и состав строк, и расчёт.
Когда выбираю экспорт через Acrobat
В Acrobat открой PDF и перейди в Convert. Выбери Microsoft Excel, формат XLSX, затем Convert to XLSX. Сохрани книгу с датой исходного прайса в имени, чтобы не смешать её со следующим выпуском. Это путь из актуальной инструкции настольного Acrobat; я не выдаю его за одинаковое меню всех программ для просмотра PDF.
Перед экспортом можно открыть Settings. Там задают, как распределять таблицы по листам, указывают десятичный разделитель и разделитель тысяч, а при необходимости — параметры распознавания. Для многостраничного прайса расположение данных по листам влияет на последующую сверку: нужно понимать, где заканчивается одна часть и начинается другая.
После сохранения выполняю те же проверки, что и после Power Query. У инструмента другой маршрут, но значение артикула не меняется от выбора программы. Скан не становится достовернее только потому, что результат теперь открывается как таблица.
Если распознавание перепутало букву и цифру, я сверяю знак на исходной странице. Нельзя исправлять его по принципу «такой код выглядит правдоподобнее». При неразборчивом оригинале полезнее запросить читаемый прайс или исходную таблицу, чем продолжать расчёт по догадке.
Что не вернётся вместе с расширением XLSX
В PDF может быть напечатано значение `701,00`, но это не раскрывает первоначальную формулу. Оно могло получиться из умножения, скидки или ручного ввода. Конвертация печатного результата не доказывает восстановление исходных вычислений.
Для нашего примера связь задана: сумма равна цене, умноженной на количество. Я могу построить такой расчёт заново и сопоставить его с контрольной колонкой. Но если в настоящем документе есть особые правила округления или скидки, их нужно выяснить отдельно. По одной итоговой цифре правило не выбирают.
То же относится к цветам и объединённым ячейкам. Они могут быть важны для чтения прайса, но не должны заменять поле данных. Например, если цвет обозначает доступность товара, это значение нужно отдельно сохранить понятным столбцом. Без расшифровки исходного обозначения придумывать статус нельзя.
Сопоставь строки прайса до переноса и после него. Исходные значения: [строки]. Перенесённые значения: [строки]. Сохрани артикулы как текст. Найди несовпадения в кодах, ценах, количестве и суммах. Не восстанавливай потерянные символы по догадке. Арифметические ошибки отдели от различий в написании. Если смысл разделителя неизвестен, отметь это отдельно.
Это поручение по переданным данным. Оно не обещает получить безошибочную книгу из любого PDF. Ответ нужно проверить по исходной странице, особенно там, где уже есть сомнение в распознанном символе.
Как из ПДФ сделать Эксель и принять готовую книгу
Перед использованием таблицы я прохожу короткую проверку:
Все нужные страницы и последние строки перенесены.
Повторные шапки отделены от товарных позиций.
В артикулах сохранены исходные символы и начальные нули.
Цена, количество и сумма имеют понятные значения и пригодны для расчёта.
Пересчитанные итоги сопоставлены с исходником, а расхождения разобраны.
Книга сохранена в нужной папке и повторно открывается.
Для регулярного сопоставления каталогов оцени условия работы с LibraChat по своим задачам. Первая сверка трёх строк и разбор нескольких выпусков прайса требуют разного объёма исходных данных; публичная страница не заменяет проверку доступных условий в аккаунте.
Я начал бы с первой позиции целиком: `00127`, два пакета, цена `350,50`, сумма `701,00`. Если каждая часть сохранила свой смысл, можно переходить дальше. Так перенос заканчивается рабочими данными, по которым понятно, что именно ты собираешься считать.