2012-04-10 15 views
5

En busca de una clase de PHP para generar enormes archivos xlsx, sin tener que asignar gran cantidad de memoria para que todo el archivo quepa en la memoria.PHPExcel write-on-the-fly?

Nos encanta PHPExcel pero necesitan una manera de escribir sobre la marcha, frente al cargar el archivo completo en la memoria, y luego llamar a una función de escribirlo.

He encontrado una pregunta similar, pero no hay un indicador claro de una solución.

Para aclarar -

Tiene 1 GB de memoria disponible y la necesidad de generar un archivo de Excel 3GB.

¿Existe una clase/método para lograr esto?

+1

Si no necesita fórmulas/formato, puede hacerlo como un archivo CSV y pretender que es un .xlsx. CSV es súper fácil de mezclar en pedazos. –

+0

¿Cuán complicado es su información? si es simple y lineal, quizás podría escribir como csv e importar para sobresalir más adelante – lunixbochs

+0

Gracias - Sí, sé que podemos usar CSV/TXT, etc. Pero específicamente tenemos un requisito para Excel. El archivo lo descargan los clientes de nuestro servicio web y tiene que verse bien (encabezados simples, logotipo de la empresa, etc.) –

Respuesta

-3

¡Yay!

Terminamos resolviendo esto escribiendo nuestra propia clase de PHP Excel, capaz de generar archivos xlsx de tamaño ILIMITADO, escribiendo sobre la marcha (nunca cargando todos los datos en la memoria).

¡Gracias a todos los que contribuyeron con sus comentarios e ideas! Muy apreciado.

Nuestra clase no tiene todas las campanas & silbidos phpexcel.codeplex ofertas. Admitimos fuentes, estilos básicos y creación automática de hojas cuando el conjunto de datos supera 1 millón de filas.

Va a limpiar la clase y ponerlo en Github para que todos lo usen. Actualizaré esta publicación con la URL tan pronto como esté disponible.

+1

Y, ¿ya la has puesto en Github? :-) Estamos enfrentando los mismos problemas, así que terminé encontrando esta respuesta. Sería muy bueno si ya hay una buena biblioteca. – Geert

+1

¿Su biblioteca ya está lista? Estoy teniendo los mismos problemas. – gustavomanolo

+0

Publique su solución en algún lugar, en cualquier lugar, o añádala al proyecto PHPExcel. – Aaron

0

El secreto para crear xlsx es escribir como tablas HTML, que es una manera muy rápida de crear hojas de cálculo de Excel básicos.

El truco consiste en escribir una tabla HTML y guardarla con la extensión .xlsx. Entonces puede ser abierto por Excel. Sencillo.

Y con HTML puede crear esos buenos encabezados con los logotipos de la empresa. ¡Lo tiene todo!

+0

¡Dulce truco! Voy a probarlo y verifico que Excel y OpenOffice abren estos archivos html-renamed-xlsx sin quejarse. –

+0

Gracias! Sí, lo descubrí por accidente y descubrí que realmente reduce el tamaño del archivo. :) –

+0

Parece que no funciona para mí. ¿Estás seguro de que funciona correctamente con los archivos xlsx? ¿No es un archivo xlsx un ZIP de archivos xml por definición? –

Cuestiones relacionadas