Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] como exportar tabla html a excel con php?

Estas en el tema de como exportar tabla html a excel con php? en el foro de PHP en Foros del Web. Hola dioses de la programacion, tengo un problema o mas bien una duda y espero me puedan ayudar, lo que pasa es que necesito saber ...
  #1 (permalink)  
Antiguo 21/03/2014, 00:46
 
Fecha de Ingreso: marzo-2014
Mensajes: 7
Antigüedad: 10 años, 1 mes
Puntos: 0
Pregunta como exportar tabla html a excel con php?

Hola dioses de la programacion, tengo un problema o mas bien una duda y espero me puedan ayudar, lo que pasa es que necesito saber si se puede exportar una tabla html (la cual tiene datos que toma de una BD) a ecxel con php pero que el archivo excel (ya exportado) mantenga los estilos que probienen de la tabla html, los colores de las celdas las negritas el tipo de letra etc, me ayudarian mucho porfa y si existe algun codigo que haga eso y no sea php igual me serviria. bueno eso gracias de antemano.
  #2 (permalink)  
Antiguo 21/03/2014, 00:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: como exportar tabla html a excel con php?

Una tabla de HTML no es un documento estándar de Excel, he ahí el primer error.

Debes usar una librería especializada para lograr la mayor compatibilidad, pero el segundo error sería pensar que puedes conseguir lo mismo que con HTML.

Es bueno que tengas claro esto antes de continuar.

Sugerencia: PHPExcel
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 21/03/2014, 00:56
 
Fecha de Ingreso: marzo-2014
Mensajes: 7
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: como exportar tabla html a excel con php?

mmmmm bueno mira pateketrueke, gracias por tu pronta respuesta el codigo que exporta a excel ya lo tengo pero no puedo conservar los estilos que tiene la tabla html, eso es en lo unico que estoy trancado....
  #4 (permalink)  
Antiguo 21/03/2014, 00:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: como exportar tabla html a excel con php?

Cita:
Iniciado por bastardodelacadena Ver Mensaje
mmmmm bueno mira pateketrueke, gracias por tu pronta respuesta el codigo que exporta a excel ya lo tengo pero no puedo conservar los estilos que tiene la tabla html, eso es en lo unico que estoy trancado....
Bueno, es exactamente lo que te acabo de decir.

Recuerda que lo que te ayuda con los estilos en el navegador son CSS, y dichos estilos son una tecnología del navegador, no de Excel.

Reflexiona un poco.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 21/03/2014, 01:14
 
Fecha de Ingreso: marzo-2014
Mensajes: 7
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: como exportar tabla html a excel con php?

pateketrueke, hace poco vi un video en youtube (la programacion era en php y utilizaban un framework llamado yii) se conseguia lo que acabo de citar, pero el codigo era muuuy complejo, pero no imposible, si existe alguna libreria que se tenga que agregar o algun metodo, la idea es que me ayuden al COMO hacerlo.... por eso mi pregunta... ya que tu respuesta me deja entrever que es imposible hacerlo... pero si NO, agradeceria que alguien dijera como se hace y si sube un codigo como ejemplo MEJOR!!! (es la razon por la cual ingrese a este foro )
  #6 (permalink)  
Antiguo 22/03/2014, 02:10
 
Fecha de Ingreso: marzo-2014
Mensajes: 7
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: como exportar tabla html a excel con php?

Bueno como nadie pudo ayudar aqui dejo la solucion que despues de tanto traste al fin la encontre y la modifique quedando perfecta!!! pateketrueke mira!!!! dejo el codigo aqui :)
algunas indicaciones:
-Para que el codigo funcione es necesario llamar a la libreria PHPexcel.php y a su carpeta con los archivos y deben ser dejados en la carpeta del host... (obvio!).
-luego un link hacia el archivo que llame exp_excell.php, algunas modificaciones como por ejemplo la version del office que estamos ocupando, añadirle algunas cosillas como mas celdas y eso, la consulta a la bd.... mmmmm bueno si alguien lo puede dejar mas nice! estaria muy agradecido pero por lo menos esto hace lo que quiero :)


aqui el codigo....


<?php
//opcional..
date_default_timezone_set('America/Santiago');
require_once("PHPExcel.php");

//VARIABLES DE PHP
$objPHPExcel = new PHPExcel();
$Archivo = "phpexcel";

//DATOS DE LA CONECCION MYSQL
$link=mysql_connect("localhost","root","");
$bd =mysql_select_db("bdxxx");


// Propiedades de archivo Excel
$objPHPExcel->getProperties()->setCreator("GerardoHernandez")
->setLastModifiedBy("GerardoHernandez")
->setTitle("Reporte XLS")
->setSubject("Reporte")
->setDescription("")
->setKeywords("")
->setCategory("");


//PROPIEDADES DEL LA CELDA
$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial Narrow');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(10);
//alto de la fila numero 1..
$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(20);
//alto de las coloumnas...
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(20);

//CABECERA DE LA CONSULTA DONDE EL "Y" ESPECIFICA HACIA DONDE SE EFECTUARA DICHA OP, OSE DE LA COLUMNA "A" HACIA LA DERECHA....
$y = 1;
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue("A".$y, 'reg_id')
->setCellValue("B".$y, 'fechaing')
->setCellValue("C".$y, 'tecnico')
->setCellValue("D".$y, 'ppu')
->setCellValue("E".$y, 'os')
->setCellValue("F".$y, 'cambios')
->setCellValue("G".$y, 'esm')
->setCellValue("H".$y, 'unidad')
->setCellValue("I".$y, 'mtc')
->setCellValue("J".$y, 'comentario')
->setCellValue("K".$y, 'usr')
->setCellValue("L".$y, 'cda')
->setCellValue("M".$y, 'cdc');


$objPHPExcel->getActiveSheet()
->getStyle('A1:M1')
->getFill()
->setFillType(PHPExcel_Style_Fill::FILL_SOLID)
->getStartColor()->setARGB('EEEEEEEB');

$borders = array(
'borders' => array(
'allborders' => array(
'style' => PHPExcel_Style_Border::BORDER_THIN,
'color' => array('argb' => 'FF000000'),
)
),
);

$objPHPExcel->getActiveSheet()
->getStyle('A1:M1')
->applyFromArray($borders);


//DETALLE DE LA CONSULTA
$sql ="SELECT *FROM registro_tb";
$rec =mysql_query($sql);
while($row=mysql_fetch_array($rec))
{
$y++;
//BORDE DE LA CELDA
$objPHPExcel->setActiveSheetIndex(0)
->getStyle('A'.$y.":M".$y)
->applyFromArray($borders);

//MOSTRAMOS LOS VALORES
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue("A".$y, $row['reg_id'])
->setCellValue("B".$y, $row['fechaing'])
->setCellValue("C".$y, $row['tecnico'])
->setCellValue("D".$y, $row['ppu'])
->setCellValue("E".$y, $row['os'])
->setCellValue("F".$y, $row['cambios'])
->setCellValue("G".$y, $row['esm'])
->setCellValue("H".$y, $row['unidad'])
->setCellValue("I".$y, $row['mtc'])
->setCellValue("J".$y, $row['comentario'])
->setCellValue("K".$y, $row['usr'])
->setCellValue("L".$y, $row['cda'])
->setCellValue("M".$y, $row['cdc']);
}

//DATOS DE LA SALIDA DEL EXCEL
/*header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="'.$Archivo.'"');
header('Cache-Control: max-age=0');
//aqui la version...
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');

exit;*/
/////////////////////////////////////////////////////////////////////////
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="total_llamados.xls"');
header('Cache-Control: max-age=0');

$objWriter=PHPExcel_IOFactory::createWriter($objPH PExcel,'Excel2007');
$objWriter->save('php://output');
exit;
mysql_close ();
?>

Bueno espero que a alguien le sirva! :)

Etiquetas: excel, html, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:03.