Exportar a una hoja de cálculo Excel usando PHP

Exportar a Excel desde PHP

Son una serie de clases PHP para exportar datos a una de hoja de cálculo MS-Excel. Los formatos de exportación posibles son:

  • CSV — Valores separados por punto y coma
  • Texto — Celdas separadas con tabuladores
  • XML — Formato XML de Excel
  • HTML — Formato HTML adaptado para Excel

Código fuente

Características

  1. Se pueden exportar un texto que ocupe varias líneas dentro de una celda
  2. Codificaciones posibles para el mapa de caracteres: UTF-8 o ISO-8859-1

Ejemplos de uso

Ejemplo nº1

    $data = array(
array('id'=>101, 'nom'=>'Juan Atrio', 'adreça'=>"C/Principal 32\n\"Barcelona\""),
array('id'=>102, 'nom'=>'Sara Gómez', 'adreça'=>"Plaza Mayor 8\nSabadell"),
array('id'=>103, 'nom'=>'Antonia Espejo', 'adreça'=>"C/Cañería 106\nTerrassa"),
array('id'=>104, 'nom'=>'Daniel Rodríguez', 'adreça'=>"Carretera N-130 km 90"),
);
$ss = new HtmlSpreadsheet('libro1.xls', 'Hoja1');
$ss->begin();
$ss->printTable($data);
$ss->end();

Ejemplo nº2

    $heading = array('id','nom','adreça');
$data = array(
array(10, 'María Gómez', "C/Principal 32\n\"Barcelona\""),
array(20, 'Carlos Gutiérrez', "Plaza Mayor 8\nSabadell"),
array(30, 'José Navas', "C/Cañería 106\nTerrassa"),
array(40, 'Mónica Morales', "Carretera N-130 km 90"),
);
$ss = new TabulatorSpreadsheet('datos.xls');
$ss->setEncoding('ISO-8859-1');
$ss->begin();
$ss->printTable($data, $heading);
$ss->end();

Clases utilizadas

  • Spreadsheet — Clase base abstracta
    • TextSpreadsheet — Cualquier carácter como separador de campos
      • TabulatorSpreadsheet — Campos separador por tabuladores
      • CsvSpreadsheet — Campos separados por punto y coma
    • ExcelSpreadsheet — Clase abstracta
      • HtmlSpreadsheet — Formato HTML adaptado para Excel
      • XmlSpreadsheet — Formato XML de Excel

Recomendaciones

  • Para exportar a MS-Excel los formatos mejores son XmlSpreadsheet y HtmlSpreadsheet. Si se quiere usar un formato de texto es mejor usar la codificación ISO-8859-1.
  • Para OpenOffice.org el mejor formato es TabulatorSpreadsheet con codificación UTF-8

Muestra de los archivos generados

Enlaces de referencia

Comentarios

Proinf.net, ©2003-2017 ci 3.1.5 (CC) Esta obra está bajo una licencia de Creative Commons Este software está sujeto a la CC-GNU GPL