PHP_XLSXWriter
PHP_XLSXWriter 0.39
Esta biblioteca foi projetada para ser leve e ter uso mínimo de memória.
Ele foi projetado para gerar uma planilha compatível com Excel no formato xlsx (Office 2007+), com suporte apenas para recursos básicos:
Nunca mais fique sem memória com o PHPExcel.
Exemplo simples de PHP CLI:
$ data = array (
array ( ' year ' , ' month ' , ' amount ' ),
array ( ' 2003 ' , ' 1 ' , ' 220 ' ),
array ( ' 2003 ' , ' 2 ' , ' 153.5 ' ),
);
$ writer = new XLSXWriter ();
$ writer -> writeSheet ( $ data );
$ writer -> writeToFile ( ' output.xlsx ' );
Formatos de células simples/avançados:
$ header = array (
' created ' => ' date ' ,
' product_id ' => ' integer ' ,
' quantity ' => ' #,##0 ' ,
' amount ' => ' price ' ,
' description ' => ' string ' ,
' tax ' => ' [$$-1009]#,##0.00;[RED]-[$$-1009]#,##0.00 ' ,
);
$ data = array (
array ( ' 2015-01-01 ' , 873 , 1 , ' 44.00 ' , ' misc ' , ' =D2*0.05 ' ),
array ( ' 2015-01-12 ' , 324 , 2 , ' 88.00 ' , ' none ' , ' =D3*0.05 ' ),
);
$ writer = new XLSXWriter ();
$ writer -> writeSheetHeader ( ' Sheet1 ' , $ header );
foreach ( $ data as $ row )
$ writer -> writeSheetRow ( ' Sheet1 ' , $ row );
$ writer -> writeToFile ( ' example.xlsx ' );
50.000 linhas: (1,4s, 0MB de uso de memória)
include_once ( " xlsxwriter.class.php " );
$ writer = new XLSXWriter ();
$ writer -> writeSheetHeader ( ' Sheet1 ' , array ( ' c1 ' => ' integer ' , ' c2 ' => ' integer ' , ' c3 ' => ' integer ' , ' c4 ' => ' integer ' ) );
for ( $ i = 0 ; $ i < 50000 ; $ i ++)
{
$ writer -> writeSheetRow ( ' Sheet1 ' , array ( $ i , $ i + 1 , $ i + 2 , $ i + 3 ) );
}
$ writer -> writeToFile ( ' huge.xlsx ' );
echo ' # ' . floor (( memory_get_peak_usage ())/ 1024 / 1024 ). " MB " . "n" ;
linhas | tempo | memória |
---|---|---|
50.000 | 1,4s | 0 MB |
100.000 | 2,7s | 0MB |
150.000 | 4,1s | 0MB |
200.000 | 5,7s | 0MB |
250.000 | 7,0s | 0MB |
Formatos de células simples são mapeados para formatos de células mais avançados
formatos simples | código de formato |
---|---|
corda | @ |
inteiro | 0 |
data | AAAA-MM-DD |
datahora | AAAA-MM-DD HH:MM:SS |
tempo | HH:MM:SS |
preço | #,##0,00 |
dólar | [$$-1009]#,##0,00;[VERMELHO]-[$$-1009]#,##0,00 |
euro | #,##0,00 [$€-407];[VERMELHO]-#,##0,00 [$€-407] |
Os estilos básicos de células estão disponíveis desde a versão 0.30
estilo | valores permitidos |
---|---|
fonte | Arial, Times New Roman, Courier New, Comic Sans MS |
tamanho da fonte | 8,9,10,11,12... |
estilo de fonte | negrito, itálico, sublinhado, tachado ou múltiplo, ou seja: 'negrito, itálico' |
fronteira | esquerda, direita, superior, inferior ou múltiplo, ou seja: 'superior, esquerdo' |
estilo de borda | fino, médio, grosso, dashDot, dashDotDot, tracejado, pontilhado, duplo, cabelo, MediumDashDot, MediumDashDotDot, MediumDashed, slantDashDot |
cor da borda | #RRGGBB, ou seja: #ff99cc ou #f9c |
cor | #RRGGBB, ou seja: #ff99cc ou #f9c |
preencher | #RRGGBB, ou seja: #eeffee ou #efe |
alinhar | geral, esquerda, direita, justificar, centralizar |
valignar | inferior, central, distribuído |