Ver Mensaje Individual
  #6 (permalink)  
Antiguo 09/05/2014, 08:45
ElleLawliet
 
Fecha de Ingreso: noviembre-2013
Mensajes: 47
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: PHPExcel para exportar tabla de base de datos a excel

E mirado el link que puso Hufex, la verdad es que todo muy claro y lo e entendido todo, lo e echo siguiendo los pasos y tal, pero me sigue sin dar ningun resultado, no hace nada! y e seguido todos los pasos! No se que tengo mal...

Pongo el codigo haber si alguien lo ve...

Código PHP:
//Se crea la conexion y se verifica, si no se conecta termina aqui y da error
$conexion = new mysqli('******','*******','********','*******',3306);
if (
mysqli_connect_errno()) {
   
printf("La conexión con el servidor de base de datos falló: %s\n"mysqli_connect_error());
   exit();
}

//Una vez conectados hacemos la consulta para obtener los datos
$consulta "SELECT field_name AS nom, field_name AS valor FROM wp_cformsdata ";
 
$resultado $conexion->query($consulta);

//Ahora comprobamos si se han obtenido datos, si el numero de registros es mas grande que 0, es que ha obtenido datos y podemos crear el reporte
if($resultado->num_rows ){
//Aqui se determina si se está accediendo al archivo vía HTTP o CLI, el archivo solo se va a mostrar si se accede desde un navegador web(HTTP).
if (PHP_SAPI == 'cli')
    die(
'Este archivo solo se puede ver desde un navegador web');
    
//Aqui se arma el reporte de excel
 
require_once 'Classes/PHPExcel.php';
 
// Se crea el objeto PHPExcel
 
$objPHPExcel = new PHPExcel();

 
//agregamos las propiedades del archivo de Excel
// Se asignan las propiedades del libro
$objPHPExcel->getProperties()->setCreator("NexusL"// Nombre del autor
    
->setLastModifiedBy("NexusL"//Ultimo usuario que lo modificó
    
->setTitle("Reporte Excel con PHP y MySQL"// Titulo
    
->setSubject("Reporte Excel con PHP y MySQL"//Asunto
    
->setDescription("Simposiums"//Descripción
    
->setKeywords("Info simposiums"//Etiquetas
    
->setCategory("Reporte excel"); //Categorias

//Para los títulos del reporte crea dos variables, de esta forma es más fácil realizar cambios si el reporte fuera muy extenso.
$tituloReporte "Info simposiums";
$titulosColumnas = array('nom''valor');

//El reporte tien 2 columnas: Nom y valor. Por lo tanto solo vamos a ocupar hasta la columna B.
// Se combinan las celdas A1 hasta D1, para colocar ahí el titulo del reporte
$objPHPExcel->setActiveSheetIndex(0)
    ->
mergeCells('A1:B1');
 
// Se agregan los titulos del reporte
$objPHPExcel->setActiveSheetIndex(0)
    ->
setCellValue('A1',$tituloReporte// Titulo del reporte
    
->setCellValue('A3',  $titulosColumnas[0])  //Titulo de las columnas
    
->setCellValue('B3',  $titulosColumnas[1])

//Se agregan los datos de los alumnos
 
 
$i 4//Numero de fila donde se va a comenzar a rellenar
 
while ($fila $resultado->fetch_array()) {
     
$objPHPExcel->setActiveSheetIndex(0)
         ->
setCellValue('A'.$i$fila['nom'])
         ->
setCellValue('B'.$i$fila['valor'])

     
$i++;
 }
 
 
//Asignamos el ancho de las columnas de forma automática en base al contenido
 
for($i 'A'$i <= 'D'$i++){
    
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension($i)->setAutoSize(TRUE);
}

// Se asigna el nombre a la hoja
$objPHPExcel->getActiveSheet()->setTitle('Simposiums');
 
// Se activa la hoja para que sea la que se muestre cuando el archivo se abre
$objPHPExcel->setActiveSheetIndex(0);

// Inmovilizar paneles
//$objPHPExcel->getActiveSheet(0)->freezePane('A4');
$objPHPExcel->getActiveSheet(0)->freezePaneByColumnAndRow(0,4);

// Se manda el archivo al navegador web, con el nombre que se indica, en formato 2007
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="name.xlsx"');
header('Cache-Control: max-age=0');
 
$objWriter PHPExcel_IOFactory::createWriter($objPHPExcel'Excel2007');
$objWriter->save('name.xlsx');
exit;
}
else{
    
print_r('No hay resultados para mostrar');

Evidentemente los datos de conexion son los corretos, aqui los e quitado. Alguien be algo? Estoy desesperado ya!