Чтение большого файла .xls с PHP - PullRequest
2 голосов
/ 06 июня 2019

В настоящее время я делаю массовый интерфейс файлов / данных, и некоторые файлы в формате XLS, которые мне нужны, чтобы нормализовать их в CSV (поэтому, в основном, конвертировать XLS в файлы CSV)

Проблема в том, что PHPExcel (и аналогичные библиотеки) загружают все данные листа одновременно, что приводит к исчерпанию памяти.

До сих пор я пробовал разные библиотеки (в то же время договаривался о наличии данных в csv, хотя пока не повезло)

Я запускаю свои тесты для файлов большого размера, мое распределение памяти установлено правильно до и после выполнения моего скрипта с использованием ini_set и т. Д.

Есть ли способ, которым я могу читать xls построчно или кусками (например, fgetcsv или fread), пожалуйста?

Я программирую это так, чтобы он мог работать с любым размером файла (даже если для его запуска требуются возрасты), поскольку это полностью автоматизированная система.

PS: я проверил этот пост и другие различные уже Чтение файла Excel в PHP

Спасибо и всего наилучшего, Оливер

1 Ответ

2 голосов
/ 06 июня 2019

Возможные пути ...

  1. Получить помощь на других языках. например найдите библиотеку Python excel и используйте ее. Затем вызовите Python из PHP.
  2. Изменить исходный код этих читателей Excel
  3. Используйте инструмент командной строки для преобразования Excel в CSV, например, Пандок, может быть, и использовать CSV в PHP
  4. Поскольку файл xls - это не что иное, как файл zip, возможно, его можно распаковать и найти значения
  5. Сначала разбейте один xls на множество маленьких xls-файлов с помощью не-PHP решения, например. VBA в Excel, а затем прочитать каждый из них.

Надеюсь, это поможет!

...