Страница 1 из 2

Импорт 20000 и + строк их Excel

Добавлено: 27 фев 2023, 21:11
Morfei
Здравствуйте. Столкнулся с такой проблемой. Руководитель 3.3.1.
Решил импортировать таблицу в которой более 26000 строк. В итоге импортировалось только около 18000. При это появилось как положено сообщение на зеленом фоне, что импорт удачно завершен. По факту куска не хватает. Повторяю импорт того же файла но уже выбираю "Обновить и добавить новые" Появляется так же сообщение, что импорт прошел успешно обновлено 18000 и добавлено еще 4500. Почему не может загрузить целиком таблицу? Сессии в server.php выставил как

Код: Выделить всё

define('STORE_SESSIONS', '');
Не помогло. Может кто сталкивался с таким уже? :(

Re: Импорт 20000 и + строк их Excel

Добавлено: 27 фев 2023, 21:31
believe
Была похожая ситуация, хостинг не "переваривал". Грузил поэтапно.

Re: Импорт 20000 и + строк их Excel

Добавлено: 27 фев 2023, 23:53
nruslan2
аналогично, грузил частями по 8000 записей.

Re: Импорт 20000 и + строк их Excel

Добавлено: 28 фев 2023, 02:59
Morfei
Ну как бы с сервером порядок. 62Гб оперативы и 48 "ведер" LA = 0,01 :-) Думаю тут чего то в другом дело. Он же сообщает что импорт успешен, но не понятно почему файл не весь? Ежели бы он ошибку выдавал, тут да, а так вообще не ясно что происходит. Это чего то с парсером возможно, но это не точно. :-) Ну и опять же ежели мне нужно автоматизировать как тогда по частям? Просто получится что не все будет отрабатывать. А в планах есть сделать автоматизацию обновления по URL.

Re: Импорт 20000 и + строк их Excel

Добавлено: 28 фев 2023, 08:15
support
Дело не только в железе. Размер переменной в пхп время выполнения скрипта так же имеют свои ограничения. Похожие ограничения есть в mysql, там всякие буферы и т.д.
Так даже сложно предположить где проблема, так как ошибки нет.
Может что в логах пхп есть на сервер?
Может поддержка хостинга как то поможет?

Re: Импорт 20000 и + строк их Excel

Добавлено: 28 фев 2023, 09:29
Fait
Я такое решал вот так:
Создаю отдельную сущность, в которой есть поле для загрузки файла (лучше csv).
И затем создаю кнопку автоматизации, которая выполняет код.
А этот код действует по следующему алгоритму:
1) Открывает файл
2) Пропускает заголовки
3) Считывает строку и формирует массив данных
4) С помощью items::insert создаёт новую запись в нужной сущности. Также можно написать условие, чтобы старая запись обновлялась, но это уже другая история :D

Да, может это костыль, но работает безупречно.

Я так реализовал загрузку банковских выписок в систему, чтобы создавались оплаты у клиентов, и при этом ещё распределялись по ним, и создавались все необходимые связи с клиентом и заказом.

То есть человек формирует файл с выпиской в банке, потом загружает его в систему, и нажимает кнопку "Обработать выписку".
Сразу попутно идёт поиск дубликатов, создаются контрагенты, счета и т.д., если в системе их нет.

При этом у меня ещё визуально отображается, что именно будет импортироваться.

Re: Импорт 20000 и + строк их Excel

Добавлено: 28 фев 2023, 10:04
Morfei
support писал(а): 28 фев 2023, 08:15 Дело не только в железе. Размер переменной в пхп время выполнения скрипта так же имеют свои ограничения. Похожие ограничения есть в mysql, там всякие буферы и т.д.
Так даже сложно предположить где проблема, так как ошибки нет.
Может что в логах пхп есть на сервер?
Может поддержка хостинга как то поможет?
Время выполнения менял, ничего не поменялось. MySQL если бы ошибки были тоже бы выдал. Посмотрю еще php, думаю может чего то с сессиями. Потому как когда сессии сохранялись в mysql, тоже были проблемы с загрузкой больших Excel. Переключил на сессии php до 22000 начал грузить нормально. Но теперь тоже проблемы. :-(

PS. Перепроверил все логи php тишина. Просто ошибок 0. И интересен еще тот факт что удаляет из базы потом все эти 25000 записей дольше раза в три чем загружает в базу. Удаляет уже примерно 30 минут и еще осталось 6000 записей. Чейто как то должен вроде шустрее очищать базу. Не?

Re: Импорт 20000 и + строк их Excel

Добавлено: 09 мар 2023, 04:35
Morfei
Дело все таки в парсере xlsx. По каким то причинам просто пропускает строки. Я их нашел, но они ничем не отличаются от других. :roll: Оставляю только три строки, включая ту которую не импортирует. И импорт происходит только 2-х, а одну принципиально не импортирует. :)

Re: Импорт 20000 и + строк их Excel

Добавлено: 09 мар 2023, 07:04
support
Использую библиотеку https://phpspreadsheet.readthedocs.io/en/latest/
У них там новая версия вышла, для 3.4 обновлю.

Re: Импорт 20000 и + строк их Excel

Добавлено: 08 май 2023, 00:27
SalahievFR
Fait писал(а): 28 фев 2023, 09:29 Я такое решал вот так:
Создаю отдельную сущность, в которой есть поле для загрузки файла (лучше csv).
И затем создаю кнопку автоматизации, которая выполняет код.
А этот код действует по следующему алгоритму:
1) Открывает файл
2) Пропускает заголовки
3) Считывает строку и формирует массив данных
4) С помощью items::insert создаёт новую запись в нужной сущности. Также можно написать условие, чтобы старая запись обновлялась, но это уже другая история :D

Да, может это костыль, но работает безупречно.

Я так реализовал загрузку банковских выписок в систему, чтобы создавались оплаты у клиентов, и при этом ещё распределялись по ним, и создавались все необходимые связи с клиентом и заказом.

То есть человек формирует файл с выпиской в банке, потом загружает его в систему, и нажимает кнопку "Обработать выписку".
Сразу попутно идёт поиск дубликатов, создаются контрагенты, счета и т.д., если в системе их нет.

При этом у меня ещё визуально отображается, что именно будет импортироваться.
Расскажите подробнее) с примером кода.