A menudo, te surge la necesidad de generar un archivo de Excel desde PHP, para poder exportar tus datos en formato .xls o .xlsx. Esto te puede venir bien para exportar los datos de un formulario de contacto, una landing page o bien una página de registro.
Encontrarás muchas formas de hacerlo, pero para mí, la más sencillo y compatible es utilizar la librería PHPEXCEL.
Sigue leyendo para ver el tutorial.
PASOS:
1. Para generar un archivo Excel desde PHP lo primero es descargarte esta librería desde su página oficial. Descomprime el archivo y sube la carpeta ‘Classes’ a tu servidor. Tardará un poco, ya que son multitud de archivos.
2. Invoca a la librería desde tu PHP con las siguientes líneas:
Código
include ‘Classes/PHPExcel.php’;
include ‘Classes/PHPExcel/Writer/Excel2007.php’;
3. Añade las siguientes líneas para crear un objeto de Excel vacío
Código
$objPHPExcel = new PHPExcel();
4. Establece algunas características del archivo de Excel
Código
$objPHPExcel->getProperties()->setCreator(«Nombre_del_Creador»);
$objPHPExcel->getProperties()->setTitle(«Título_que_quieras_ponerle»);
$objPHPExcel->setActiveSheetIndex(0); //Elegimos la hoja 0
5. Rellena el archivo vacío con los datos.
Cuando te descargas la librería te viene toda la documentación (en inglés, por supuesto), pero aquí te explico la forma de acceder a las celdas que a mí me parece más sencilla: mediante la función setCellValueByColumnAndRow
Esta función nos permite acceder a las celdas mediante una coordenada que indica su posición. Numeramos las columnas de 0 a N (0, 1, 2, 3, 4,…) y las filas de 1 a N (1,2,3,4,5,…) de tal forma que la celda A1 sería la (0,1).
Decía que esta forma me parece la más sencilla, ya que nos permite usar la iteración mediante bucles FOR y WHILE, para rellenar los datos.
Código
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0,1,’Contenido de la celda A1′);
6. Guardar el archivo en el servidor
Ahora solo queda guardar el archivo generado en el servidor. Para ello simplemente tendrás que indicar la ruta del archivo.
IMPORTANTE: Este código sirve para generar un archivo XLSX. Si deseas generar un XLS revisa la documentación de la librería.
Código
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save(‘tuarchivo.xlsx’);
Comentarios recientes