2010-10-23 30 views
6

Necesito exportar datos de php a Excel, y ser capaz de formatear varios elementos en la hoja de cálculo de Excel.Exportar de PHP a Excel

Hasta ahora, la mejor biblioteca que he encontrado es PHPExcel. Sin embargo, parece muy pesado y algo lento. De acuerdo, es muy poderoso.

¿Hay algo un poco más ligero y más rápido, que me permite exportar a Excel y poder aplicar un formato simple (negrita, alineación, bordes)?

+3

Respondí esta pregunta hace aproximadamente una semana http://stackoverflow.com/questions/3930975/alternative-for-php-excel/3931142#3931142 –

Respuesta

4

Acabo de terminar con esto ayer. Usando PHPExcel, no tuve problemas para leer en un documento "maestro" con formato, escribir 20-100 filas de contenido y guardar el archivo (lo guardo "en la pantalla" para su descarga inmediata. Mientras que algunas personas en los foros se quejaban velocidad y sobrecarga, estoy empujando una gran cantidad de datos a su manera y no tiene ningún problema haciendo lo que anuncia.

Tenga en cuenta que en algún lugar leí para hacer el diseño en serie en lugar de en loops cuando sea posible Por ejemplo, el estilo a1: a50 en lugar de style->a1, style->a2 en un bucle. Aparentemente, los dos escenarios diferentes tienen implicaciones de memoria muy diferentes.

El único problema que encontré fueron algunos caprichos entre la salida y la lectura de archivos de Excel 2003. Si estás trabajando completamente en archivos XLSX, debería funcionar ex tal como está documentado.

+0

Siempre recomendamos aplicar estilos a rangos en lugar de pasar por celdas individuales ... es más rápido y utiliza menos memoria, y el archivo de salida Excel es más pequeño debido a los estilos compartidos. Otro truco de estilo útil es applyFromArray(), que define un conjunto de características de estilo (negrita, color, color de fondo, bordes, etc.) en una matriz y luego las aplica a las celdas en una sola llamada en lugar de configurar cada elemento individualmente. –

+0

Sí, definitivamente intento formato a distancia en lugar de celdas, pero para ser honesto, realmente no hay mucho formato en esta hoja en absoluto. En este momento, estoy exportando alrededor de 1000 filas y 6 columnas, con un formato de rango en 3 filas y 3 columnas. Se necesitan aproximadamente 6 segundos (de los cuales aproximadamente 1 segundo es tiempo de consulta) para ejecutar en mi servidor local, que generalmente es una aproximación decente de la velocidad del servidor. – JonoB

+0

@JonoB: para escribir sus datos en el objeto PHPExcel, ¿ha mirado el método de Array() de PHPExcel_Worksheet en lugar de establecer el valor de cada celda individualmente? Esto se puede usar con un Value Binder para forzar la correcta clasificación de datos de los valores de celda para acelerar el proceso de creación del libro en la memoria. –