Сохраняйте узкие границы
Этот процесс предназначен для аналитиков, операционных команд и разработчиков, которые готовят одну книгу или один лист для потребителя JSON. Сохраните неизменённую копию и создайте проверенный JSON-массив либо просмотр ограниченного диапазона. Пакетный приём, вход через API или S3, объединение книг и передача в SQL, Parquet или хранилище сюда не входят.
Сначала проверьте границу
Запишите имя листа, диапазон A1 или именованный диапазон, строку заголовков и ожидаемое число строк. Используйте xlsx-range-extractor в режиме records, когда каждая строка должна стать объектом, или cell_objects, когда адреса служат доказательством. Удаляйте пустые ячейки только если они не важны для проверки. Граница существенна: mapper и transformer читают лист, а не произвольный диапазон.
Сопоставляйте поля по явному контракту
На рабочей копии запустите xlsx-column-mapper с фактической строкой заголовков. Поместите канонические имена в renameMapJson, псевдонимы в aliasMapJson, нужную последовательность в reorderColumns, а намеренные удаления в removeColumns. До запуска решите, каким будет keepUnmapped. Проверьте новую строку заголовков и сохраните исходник: результат сопоставления является новым XLSX.
Преобразуйте JSON и проверьте его поведение
Используйте xlsx-json-transformer в режиме xlsx_to_json, когда заголовки сопоставленного листа находятся в первой строке. Не меняйте имя листа и разделитель путей. restoreTypes может превратить текст, похожий на число, boolean, null, массив или объект, в другое JSON-значение; при преобразовании XLSX в JSON пустые ячейки пропускаются. Сравните показательные строки, поля, типы, пустые значения и дублирующиеся ключи. Инструменты не принимают за вас решения о дубликатах и бизнес-типах.
Принимайте результат только после объяснения каждого расхождения и проверки, что требования пакетной обработки, внешнего входа, нескольких книг, SQL, Parquet или хранилища не проникли в передачу одной книги.