170 похожих чатов

Всем привет. для чтения Xlsx использую PhpSpreadsheet, но проблема возникает когда

в файле много данных (170к строк)
пробовал уже и через фильтр по шагам, но падает непосредственно при $spreadsheet = $reader->load($inputFileName);
может кто что посоветует?

16 ответов

19 просмотров

Либа говно и жрет память как не в себя, есть альтернативы - гугли

возьми box/stout

Max-V Автор вопроса
Max V
Box\Spout пробовал, тоже не вывозит

а сколько памяти у пыха?

Max-V Автор вопроса
🦔
а сколько памяти у пыха?

выставляю в обработке ini_set("memory_limit","1024M");

https://github.com/PHPOffice/PhpSpreadsheet/issues/629#issuecomment-551517933

Max V
Box\Spout пробовал, тоже не вывозит

что-то странно .. учитывая что он обещает "Unlike other file readers or writers, it is capable of processing very large files, while keeping the memory usage really low (less than 3MB)." .. да и строк у Вас не очень то и много

Max-V Автор вопроса
Vitaly Larin
https://github.com/PHPOffice/PhpSpreadsheet/issues...

что-то у меня этот вариант при первом подходе не завелся, попробую еще раз

Max V
что-то у меня этот вариант при первом подходе не з...

я бы всё же взял бы Box\Spout .. который изначально по другому работает,а не такие костыли использовал

Max-V Автор вопроса
Vitaly Larin
я бы всё же взял бы Box\Spout .. который изначальн...

вот такой результат дает 170552 записей за 266.7235 сек.🙈

Max V
вот такой результат дает 170552 записей за 266.723...

ну так до этого он же "но падает непосредственно".. результат уже лучше

Max V
вот такой результат дает 170552 записей за 266.723...

может дело не в либе, может тормозит твой код, натрави xhprof и узнай где затык

Max-V Автор вопроса

наверное не правильно сказал "падает" - 504 была, запустил скрипт php riva_test.php - получил такой результат что за 266 сек

Max V
наверное не правильно сказал "падает" - 504 была, ...

а.. ну тогда , вопрос к ресурсам .. эта либа очень прожорливая .. а насколько я видел ресурсов не так уж и много

Max-V Автор вопроса
Max-V Автор вопроса
Дмитрий Щербаков
может дело не в либе, может тормозит твой код, нат...

да код из примера как пользоваться, там все просто, жаль не поддерживается либа, гуглить нюансы буду

Похожие вопросы

Обсуждают сегодня

Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
10
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
А дальше что?.. Записать в файл, потом в Код?.. И потом разбирать как-то?..
Хаскель Моисеевич Гопник
14
доброго времени. db, dw и прочие исполняются при трансляции или при выполнении программы?
lutayyy
10
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
например asm AT&T ... label: .string "hi" ... # not error lea label(%rip), %rax # error ( not compile ) mov %rip, %rax # not error mov (%rip), %rax из форумов прочитал чт...
Simple Sorcerer
6
Почему никто не подсказал, что можно объявить свои типы данных, в которых меньше полей, чем в отданном джейсоне, и добавлять их по необходимости?
Strange Rabbit
10
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Есть предложения, как подобное можно упростить?
Hemul GM
12
Карта сайта