Чтение большого файла .xls с помощью PHP

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

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

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

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

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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
589
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Возможные способы...

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

Спасибо за ответ. Обратная связь на случай, если другие будут изучать это в будущем.... Пункт 2) Я проверяю метод PHPExcel ->load... интересно.. Пункт 3 кажется наиболее жизнеспособным вариантом на данном этапе + я уверен это будет быстрее преобразовать и выполнить работу, пытаясь избежать этого только потому, что я хочу, чтобы решение было полностью на PHP... Пункт 4) Я разархивировал xls, и формат не легко анализируется, если это было xlsx, распаковка дает вам файл xls... Пункт 5) Если у меня есть возможность использовать не-php на рабочей станции, я бы предпочел сохранить как csv (все равно спасибо за подсказку!). Спасибо!

Oliver M Grech 06.06.2019 15:16

Другие вопросы по теме