Este helper se diseño con la unica intención de facilitar el uso de PHPExcel
Veamos uno ejemplos de como usuarlo.
Es importante recordar que require de PHPExcel, si no lo tenemos instalado podemos tipear en nuestra consola
composer require PHPOffice/PHPExcel
Editamos nuestro archivo composer.json
y agregamos la sección de autoload con las siguientes lineas:
{
"autoload": {
"files" : [
"helpers/Excel.php"
]
}
}
Ahora tipeamos en nuestra consola
composer dump-autoload
Ya en el código:
<?php
//importamos el autoload de composer
require "vendor/autoload.php";
//creamos una instancia de la clase Excel,
//asignando un nombre al documento que vamos a generar
$excel = new Excel('NombreArchivo');
Se admiten varias formas de crear Worksheets
La forma tradicional solo implica llamar al método sheet
de la clase Excel
ya que este retorna un objeto de tipo PHPExcel_worksheet
$sheet = $excel->sheet('Worksheet 1');
$sheet->setCellValue('A1', 'Tradicional');
$sheet->setCellValue('B1', 'Detalle');
$sheet->getColumnDimension('A')->setAutoSize(true);
$sheet->getColumnDimension('B')->setAutoSize(true);
Podemos invocar una función declarada
//$sheet es un objeto de tipo PHPExcel_Worksheet
$sheet = $excel->sheet('Worksheet 2','sheet2');
function sheet2(PHPExcel_Worksheet $sheet)
{
$sheet->setCellValue('A1', 'Invocar');
$sheet->setCellValue('B1', 'Funciones');
}
//$sheet es un objeto de tipo PHPExcel_Worksheet
$sheet = $excel->sheet('Worksheet 3', array('test', 'sheet3'));
class test
{
public function sheet3(PHPExcel_Worksheet $sheet)
{
$sheet->setCellValue('A1', 'N Orden caso 2');
$sheet->setCellValue('B1', 'Cliente O.S caso 2');
$sheet->getColumnDimension('A')->setAutoSize(true);
$sheet->getColumnDimension('B')->setAutoSize(true);
}
}
$sheet = $excel->sheet('Worksheet 4', function (PHPExcel_Worksheet $sheet)
{
$sheet->setCellValue('A1', 'Funciones');
$sheet->setCellValue('B1', 'Anónimas');
$sheet->getColumnDimension('A')->setAutoSize(true);
$sheet->getColumnDimension('B')->setAutoSize(true);
});
Podemos descargar el archivo en 2 formatos:
- xls Compatible con Excel 2003 en adelante
$excel->download('xls');
- xlsx Compatible con Excel 2007 en adelante (Extensión usada por defecto)
//$excel->download('xlsx');
$excel->download();
También podemos mostrar en html
$excel->show();