Este post mostramos como exportar datos desde PHP a Excel o bien crear documentos en Excel “al vuelo”, esto es bastante útil para poder capturar los datos desde la base de datos y directamente pasarlos a Excel.
Con lo que te voy a enseñar en el artículo verés que puedes efectuar documentos de Excel con un montón de peculiaridades como celdas con ajuste de texto, celdas combinadas, texto con formato rico.
En el momento en que leas todo el artículo y le pongas un tanto de imaginación veras todo cuanto puedes hacer con esto.
Para utilizar este código necesitas descargar la clase PHPExcel de Maarten Balliauw (tiene licencia LGPL), y la puedes descargar desde aquí: PHPExcel.
Este sería el código de ejemplo , con el que tendrás que sustituir los datos por los tuyos.
require_once 'Classes/PHPExcel.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->getDefaultStyle()->getFont()->setName('Arial'); $objPHPExcel->getDefaultStyle()->getFont()->setSize(10); $objPHPExcel->getActiveSheet()->setCellValue('A1','Creando el documento excel'); $objRichText = new PHPExcel_RichText(); $objRichText->createText('Creando textos'); $objPHPExcel->getActiveSheet()->getCell('A5')->setValue($objRichText); //combinando celdas $objPHPExcel->getActiveSheet()->mergeCells('A5:E10'); $objPHPExcel->getActiveSheet()->getStyle('A5')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY); $objPHPExcel->getActiveSheet()->getStyle('A5')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //Utilizar formulas $objPHPExcel->getActiveSheet()->setCellValue('B11', 'Sumando datos'); $objPHPExcel->getActiveSheet()->setCellValue('B15', 2); $objPHPExcel->getActiveSheet()->setCellValue('B21', 8); $objPHPExcel->getActiveSheet()->setCellValue('B15', 10); //Aplicando fórmulas $objPHPExcel->getActiveSheet()->setCellValue('B16', '=SUM(B13:B15)'); // Nombramos la hoja $objPHPExcel->getActiveSheet()->setTitle('PHP to Excel'); // Elegimos en que hoja se abre el Excel $objPHPExcel->setActiveSheetIndex(0); // Y ahora guardamos el archivo con el nombre que quieras $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PHPExcelNombre’); $objWriter->save(str_replace('.php', '.xlsx', __FILE__)); |
Quizá la forma más completa y segura (en cuanto a no tener errores) es utilizar la clase PHPExcel que puedes ver en este ejemplo, no obstante tienes que saber que existen otras muchas mas formas, por ejemplo estas que pongo a continuación.
Si no quieres utilizar esta clase de php, y necesitas solo hacer una exportación sencilla puedes hacerlo de dos maneras bastante sencillas, siempre que tus datos no tengan características muy raras como por ejemplo tabulaciones y demás .
Exportar datos a excel desde php y mysql
Aquí te dejo otra manera incluso más sencilla
Exportar datos desde php a excel
Si solo necesitas exportarlo a CSV, te recuerdo que un CSV no es igual que un EXCEL y si solo necesitas un CSV que es un formato mucho más universal entonces NO necesitas volverte loco y puedes hacerlo así de simple.
Exportar datos desde php a CSV