Как парсить большие XLS-документы?

Что лучше использовать для парсинга больших XLS документов, где внутри для каждой строки нужно делать много проверок в соответствующих полях, формировать массив и записывать в базу. И в последующих импортах нужно будет и редактировать те что уже записаны и вносить изменения. Это очень трудоемкая операция. Работаю на PHP использую PHPOffice. Может стоит написать самому или использовать какой то NodeJS.

Можно на любом языке.

В PHP при работе через старый PHPOffice или новый PhpSpreadsheet можно большие файлы прогонять через ChunkReadFilter как предложено здесь.

Вставлять в БД удобнее не по одной строке, а пачкой вроде:

INSERT INTO items (a,b,c) VALUES (1,2,3), (4,5,6), (7,8,9);

А чтобы перезаписывать старые строки можно формировать запросы как INSERT IGNORE или INSERT ON DUPLICATE.

Если импорт будет долгий, то в контроллере можно только загружать файл, а импорт уже запускать в фоне через очередь.

Дмитрий Елисеев
elisdn.ru
Комментарии (0)
Зарегистрируйтесь или войдите чтобы оставить комментарий

Или войти через:

Google
GitHub
Yandex
MailRu