Skip to content

Como exportar de php a Excel

junio 14, 2011

Este artículo va dirigido para todos aquellos que necesitan exportar o crear documentos en Excel 2007 “al vuelo”, es decir de forma dinámica, ¿te interesa?, entonces no te puedes perder este artículo, está muy padre.

Con lo que te voy a mostrar en este artículo veras que puedes realizar documentos de Excel con un montón de características como formulas, celdas con ajuste de texto, celdas combinadas, texto con formato rico, etc. Una vez que leas todo el articulo y le pongas un poco de imaginación veras todo lo que puedes hacer con esto.

Ya estaba cansado de buscar y de buscar como exportar a excel con php y encontrarme con información de rutinas muy simples pero, que no funcionaban y otras muy complejas, difícil de entender y al final el mismo resultado no funcionaban. Si te pasa lo mismo, entonces estoy seguro que esta información es lo que tanto buscabas.

Bueno ya mucho bla, bla, ba, entremos en materia. El documento que he creado de prueba solo es para darte una probadita y tomes las pautas para que tú puedas iniciar a crear tus propios documentos en excel.

Primero: necesitas descargar la clase PHPExcel de Maarten Balliauw (tiene licencia LGPL), y la puedes descargar desde aquí: http://www.codeplex.com/PHPExcel.

Segundo: el código encargado de crear el documento de Excel 2007. Nota que he comentado el código para que sea mas entendible:

<?php

/* http://ProgramarEnPHP.wordpress.com */

/** En caso de errores… */

error_reporting(E_ALL);

 

/** PHPExcel */

require_once ‘Classes/PHPExcel.php';

 

// Creamos nueva instancia de PHPExcel

$objPHPExcel = new PHPExcel();

 

// Seleccionando la fuente a utilizar

$objPHPExcel->getDefaultStyle()->getFont()->setName(‘Arial’);

$objPHPExcel->getDefaultStyle()->getFont()->setSize(10);

 

// Escribiendo los datos

$objPHPExcel->getActiveSheet()->setCellValue(‘A1′,’Este es un Ejemplo Sencillo de como crear un documento en Excel’);

 

// Ahora texto con propiedades

$objRichText = new PHPExcel_RichText();

$objRichText->createText(‘Y como puedes ver puedes poner texto en celdas combinadas y con texto ajustado’);

$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);

 

//Y tambien podemos utilizar formulas

$objPHPExcel->getActiveSheet()->setCellValue(‘B12′, ‘Datos a sumar’);

$objPHPExcel->getActiveSheet()->setCellValue(‘B13′, 2);

$objPHPExcel->getActiveSheet()->setCellValue(‘B14′, 8);

$objPHPExcel->getActiveSheet()->setCellValue(‘B15′, 10);

$objPHPExcel->getActiveSheet()->setCellValue(‘B16′, ‘=SUM(B13:B15)’);

// Nombramos la hoja

$objPHPExcel->getActiveSheet()->setTitle(‘ProgramarEnPHP’);

// Activamos para que al abrir el excel nos muestre la primer hoja

$objPHPExcel->setActiveSheetIndex(0);

 

// Guardamos el archivo, en este caso lo guarda con el mismo nombre del php

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel2007′);

$objWriter->save(str_replace(‘.php’, ‘.xlsx’, __FILE__));

?>

 

El documento de excel que crea lo puedes descargar de aquí.

 

Tercero: el código a primera impresión se ve difícil de entender pero si prácticas con este ejemplo y con todos los que trae la carpeta Test que viene con el paquete de instalación de la clase veras cuan sencillo es, gracias Maarten por esta clase.

 

En este enlace puedes descargar el ejemplo en cuestión con todo lo necesario para verla funcionar.

 

Ya para terminar con este articulo, te cuento que tengo un nuevo blog http://AprendeAprogramarEnPHPya.com/blog , y en lo sucesivo estaré publicando mas artículos en aquel que en este. Y pues como siempre te pido tus comentarios para saber que te pareció este artículo o que esperas aprender y si hay algún tema en especial que se te dificulte dímelo en tus comentarios para ayudarte.

 

Atte, tu amigo

Salvador López

About these ads

From → Avanzado

4 comentarios
  1. Pablo permalink

    NO he tenido suerte en capturar datos desde la base de datos.

    $objPHPExcel->getActiveSheet()->setCellValue(‘A2′, ‘echo .$registro['nficha']. ‘);

    Esto deberia ser asi, no?

  2. gracias por el contenido me ayudara a en riqueser mis conocimiento sigue a delante…

  3. Luis Antonio permalink

    hola amigo la segunda y tercera linea no me funciona me sale error????
    asi como tambien me sale error en varios manuales que he visitado. alguna sugerencia???

    GRACIAS

    $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);

  4. Gtn permalink

    Se ve interesante… sencillo… bien explicado… será cosa de probarlo y mandar otro comentario para decir cómo me fue… espero que bien U_u

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 139 seguidores

A %d blogueros les gusta esto: