Comunidad de diseño web y desarrollo en internet online

PHPExcel

Citar            
MensajeEscrito el 27 Nov 2012 05:08 pm
Hola:

No se me había dado nunca el caso de tener que imprimir un excel desde PHP, hasta hoy.

Me he bajado PHPExcel, me sorprende que cree archivos para excel 2007, quizás me esté bajando una versión antigua, pero no he encontrado otra versión.

El problema es que al crear el excel y abrirlo, me aparece como archivo dañado y no me muestra nada, le he dado vueltas al código y he probado varias cosas, pero se me escapa algo.

Aquí va mi código:

----------------------------------------------------------------------------------

Código :

$consulta = "SELECT * FROM empresa WHERE id_empresa = 2";
   $resultado = mysql_query( $consulta );
     $fila = mysql_fetch_array( $resultado );
   

  
require_once("excel/Classes/PHPExcel.php");
require_once("excel/Classes/PHPExcel/Writer/Excel2007.php");
     
     $objPHPExcel = new PHPExcel();
//algunos datos sobre autoría
$objPHPExcel->getProperties()->setCreator("autor");
$objPHPExcel->getProperties()->setLastModifiedBy("autor");
$objPHPExcel->getProperties()->setTitle("titulo del Excel");
$objPHPExcel->getProperties()->setSubject("Asunto");
$objPHPExcel->getProperties()->setDescription("Descripcion");
 
//Trabajamos con la hoja activa principal
$objPHPExcel->setActiveSheetIndex(0);
 
//iteramos para los resultados, aquí debería ir un array, pero estoy probando con solo una id, y ni eso. 

    $objPHPExcel->getActiveSheet()->SetCellValue("B1", $fila['nombre_marca']);
    $objPHPExcel->getActiveSheet()->SetCellValue("C1", $fila['cif']);
    $objPHPExcel->getActiveSheet()->setCellValue("D1", $fila['telefono']);
    $objPHPExcel->getActiveSheet()->setCellValue("E1", $fila['telefono2_fax']);
    $objPHPExcel->getActiveSheet()->setCellValue("F1", $fila['e_mail']);
   $objPHPExcel->getActiveSheet()->setCellValue("G1", $fila['direcciones']);
   $objPHPExcel->getActiveSheet()->setCellValue("H1", $fila['contacto']);
   $objPHPExcel->getActiveSheet()->setCellValue("I1", $fila['comentario']);

 
//Titulo del libro y seguridad
$objPHPExcel->getActiveSheet()->setTitle('Reporte');
$objPHPExcel->getSecurity()->setLockWindows(true);
$objPHPExcel->getSecurity()->setLockStructure(true);
 
 
// Se modifican los encabezados del HTTP para indicar que se envia un archivo de Excel.
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="empresa.xlsx"');
header('Cache-Control: max-age=0');
 
//Creamos el Archivo .xlsx
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
----------------------------------------------------------------------------------------


Y el error es que al abrir el excel, me sale una ventana de que "Excel no puede abrir el archivo "tal", porque el formato o la extensión de este no son válidos"

Por boyere

Claber

191 de clabLevel

1 tutorial

Genero:Masculino  

Simplemente aprendo

firefox
Citar            
MensajeEscrito el 27 Nov 2012 08:23 pm
Pregunta: ¿Necesitas que alguna de las celdas contenga una fórmula?.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 28 Nov 2012 07:39 am
Si, es un programa de gestión. Además de necesitar sacar listados en excel.

Por boyere

Claber

191 de clabLevel

1 tutorial

Genero:Masculino  

Simplemente aprendo

firefox
Citar            
MensajeEscrito el 28 Nov 2012 12:16 pm
Ah, bueno, entonces la solución que te iba a proponer no te servirá porque no contempla celdas de Excel con fórmulas.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 30 Nov 2012 12:03 pm
Toda soluci'on que me des es buena...

Por boyere

Claber

191 de clabLevel

1 tutorial

Genero:Masculino  

Simplemente aprendo

firefox
Citar            
MensajeEscrito el 01 Dic 2012 12:24 pm
Pues ejecuta el Excel. Arma la hoja como te gustaría que la vea el visitante de tu sitio. Haz "Guardar como...", elije el formato "Página web". Tendrás en tus manos un archivo .htm que puedes editar. Podrás identifcar que tiene encabezado, el cuerpo, que las celdas no son más que una tabla HTML la cual puedes generar tranquilamente con PHP.

Si al visitante le envías ese mismo archivo pero con extensión .xls, el Excel no se queja y lo abre perfectamente.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 03 Dic 2012 04:39 pm
Ok, muchas gracias, lo probaré en cuanto pueda.

Por boyere

Claber

191 de clabLevel

1 tutorial

Genero:Masculino  

Simplemente aprendo

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.