Estoy tratando de leer un archivo Excel de 17MB (2003) con PHPExcel1.7.3c, pero ya se aplasta mientras carga el archivo, después de exceder el límite de 120 segundos que tengo. ¿Hay otra biblioteca que pueda hacerlo de manera más eficiente? No necesito diseñar, solo lo necesito para soportar UTF8. Gracias por su ayudaLectura de archivos grandes de Excel con PHP
Respuesta
Tamaño de archivo no es una buena medida cuando se utiliza PHPExcel, es más importante tener una idea del número de celdas (rowsxcolumns) en cada hoja de cálculo.
Si usted no tiene ninguna necesidad para el peinado, está llamando:
$objReader->setReadDataOnly(true);
antes de cargar el archivo?
Si no necesita acceder a todas las hojas de trabajo, o solamente ciertas células dentro de una hoja de trabajo, buscar en el uso
$objReader->setLoadSheetsOnly(array(1,2))
o
$objReader->setLoadSheetsOnly(1)
o la definición de un readFilter
Son Estás usando el caché de la celda? Si es así, ¿qué método? Eso ralentiza el tiempo de carga.
17 MB es un archivo pesado.
Tiempo de duración de un archivo de 1MB para que pueda calcular cuánto tardaría un archivo de 17MB. Entonces, una opción podría ser simplemente aumentar su límite de 120 segundos.
Alternativamente, podría exportar a CSV, que será mucho más eficiente, e importarlo a través de fgetcsv de PHP.
He oído que Excel Explorer es mejor en la lectura de archivos de gran tamaño.
Quizás podría convertir/exportar a csv, y usar fgetcsv incorporado(). Depende del tipo de funcionalidad que necesita.
Si lo único que necesita de su lectura de archivos Excel es de datos, aquí es mi manera de leer grandes archivos de Excel:
instalo Gnumeric en mi servidor, es decir, con Debian/Ubuntu: apt-get install Gnumeric
Entonces el php llama para leer mi archivo de Excel y almacenarla en una matriz de datos dimensionnal dos son increíblemente simple (dimensiones son filas y columnas):
system("ssconvert \"$excel_file_name\" \"temp.csv\"");
$array = array_map("str_getcsv", file("temp.csv"));
entonces puedo hacer lo que quiero con mi formación. ¡Esto toma menos de 10 segundos para un archivo xls grande de 10 MB, al mismo tiempo que necesitaría cargar el archivo en mi programa de hoja de cálculo favorito!
Para archivos muy grandes, debe usar fopen() y file_getcsv() funciones y hacer lo que tiene que hacer sin almacenar datos en una gran matriz para evitar almacenar todo el archivo csv en memoria con la función file() . Esto será más lento, ¡pero no se comerá toda la memoria de su servidor!
Actualmente estoy usando la hoja de cálculo-lector (https://github.com/nuovo/spreadsheet-reader), que es bastante rápido en la lectura de XLSX
, ODS
y CSV
, y tiene los problemas mencionados sólo en el formato de lectura XLS
.
- 1. Lectura de archivos muy grandes en PHP
- 2. Lectura de archivos de Excel con xlrd
- 3. de lectura/analizar archivos Excel (XLS) con Python
- 4. lectura bastante grandes archivos JSON en Python
- 5. ¿Cómo leer hojas de cálculo grandes de grandes archivos de Excel (27 MB +) con PHPExcel?
- 6. descomprimir archivos más grandes con PHP
- 7. Desempaquetar archivos grandes con gzip en PHP
- 8. Lectura y escritura de archivos de Excel con Ruby en un servidor sin Excel instalado
- 9. Dividir archivos grandes usando PHP
- 10. Subir archivo de archivos grandes PHP/AJAX
- 11. Programa para trabajar con archivos CSV grandes
- 12. Mejor lenguaje para analizar archivos extremadamente grandes de Excel 2007
- 13. Lectura de archivos xlsx con Python
- 14. Cómo generar archivos de Excel con Autofiltros en PHP?
- 15. Lectura de archivos xlsx en PHP
- 16. lectura de archivos odt en php
- 17. Subidas de archivos grandes
- 18. Resharper con archivos grandes o * muy * grandes
- 19. Cargas muy grandes con PHP
- 20. Lectura de datos de Excel en Haskell
- 21. Sirviendo archivos grandes protegidos en PHP/Apache
- 22. Cómo base64 decodificar archivos grandes en PHP
- 23. Carga de archivos grandes con WebSocket
- 24. Carga eficiente de archivos grandes con Yesod
- 25. Compresión de archivos grandes con python
- 26. Creación de archivos de Excel con C#
- 27. Ruby: Lectura de archivos PDF
- 28. Clase de generación/exportación de archivos PHP Microsoft Excel
- 29. Renombrar archivos con Excel VBA
- 30. la creación de grandes hojas de Excel mediante programación
A $ 500 para uso comercial, espero que sea mejor –
El precio y la calidad no tienen ninguna correlación. Solo necesita una licencia personal de $ 99 si desea usarla para su propia aplicación web. – Sjoerd