Foros del Web » Programando para Internet » PHP »

Php Excel y Base de Datos

Estas en el tema de Php Excel y Base de Datos en el foro de PHP en Foros del Web. Me e Comido todo google y parte de este foro buscando la manera de crear archivos excel usando php y base de datos, pero ademas ...
  #1 (permalink)  
Antiguo 14/08/2009, 07:00
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Pregunta Php Excel y Base de Datos

Me e Comido todo google y parte de este foro buscando la manera de crear archivos excel usando php y base de datos, pero ademas debo tener imagenes en el informes y que la hoja sea Horizontal...

y unas cosas mas...

Ahora tengo este codigo que baje de internet:

Código PHP:
<?php 

// Create new PHPExcel object 
$objPHPExcel = new PHPExcel(); 

// Set properties 
objPHPExcel->getProperties()->setCreator("Maarten Balliauw"); 
$objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw"); 
$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document"); 
$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document"); 
$objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes."); 


// Add some data 
$objPHPExcel->setActiveSheetIndex(0); 
$objPHPExcel->getActiveSheet()->SetCellValue('A1''Hello'); 
$objPHPExcel->getActiveSheet()->SetCellValue('B2''world!'); 
$objPHPExcel->getActiveSheet()->SetCellValue('C1''Hello'); 
$objPHPExcel->getActiveSheet()->SetCellValue('D2''world!'); 

// Rename sheet 
$objPHPExcel->getActiveSheet()->setTitle('Simple'); 

// Save Excel 2007 file 
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); 
$objWriter->save(str_replace('.php''.xlsx'__FILE__)); 
?>
Como lo puedo trabajar con lo que quiero?
  #2 (permalink)  
Antiguo 14/08/2009, 07:05
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Php Excel y Base de Datos

Bueno para crear archivos de excel lo mejor es PHPExcel Verifica sobre esa clase de internet.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 14/08/2009, 07:19
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Php Excel y Base de Datos

Si pregunto en el foro es porque no hayo como adaptarlo a mis necesidades por ello el post si vas a responder eso simplemente no postees porque no estas contribuyendo y disculpa si te e ofendido....
  #4 (permalink)  
Antiguo 14/08/2009, 07:29
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Php Excel y Base de Datos

No te preocupes no me he ofendido. Pero mientras tanto puedes hacerlo de esta forma, que no es la que te sugiero sino que busques sobre la clase que te indique. Con el PHPExcel siempre trata los ejemplos que te dan y luego modifícalo a tus necesidades. Pero aqui tienes un ejemplo diferente a PHPExcel

Código php:
Ver original
  1. <?php
  2. header("Pragma: public");
  3. header("Expires: 0");
  4. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  5. header("Content-Type: application/force-download");
  6. header("Content-Type: application/octet-stream");
  7. header("Content-Type: application/download");
  8. header("Content-Type: application/vnd.ms-excel");
  9. header('Content-Disposition: attachment; filename="nombre.xls"');
  10.  
  11.  
  12. $s = "SELECT * FROM tabla";
  13. $r = mysql_query($s);
  14.  
  15. $bodyTable = "<tr>
  16.         <th NOWRAP>Employee Number</th>
  17.         <th NOWRAP>Transaction Code</th>
  18.         <th NOWRAP>Date</th>
  19.         <th NOWRAP>Count</th>
  20.     </tr>";
  21. while($row = mysql_fetch_assoc($r)){
  22.     $bg=($bg=='E2E2F2'?'F2F2FF':'E2E2F2');
  23.     $bodyTable .= "<tr>
  24.         <td bgcolor='#".$bg."' NOWRAP align='center'>".$row["columna1"]."</td>
  25.         <td bgcolor='#".$bg."' NOWRAP align='center'>".$row["columna2"]."</td>
  26.         <td bgcolor='#".$bg."' NOWRAP align='center'>".$row["columna3"]."</td>
  27.         <td bgcolor='#".$bg."' NOWRAP align='center'>".$row["columna4"]."</td>
  28.     </tr>";
  29. }
  30.  
  31. $setBody = <<< BHD
  32. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  33. <html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">
  34. <head>
  35.     <meta http-equiv="Content-type" content="text/html;charset=utf-8" />
  36. </head>
  37. <body>
  38.  
  39. <div id="MainExcelDiv" align="center" x:publishsource="Excel">
  40. <table x:str border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse">
  41. {$bodyTable}
  42. </table>
  43. </div>
  44. </body>
  45. </html>
  46. BHD;
  47.  
  48. echo $setBody;

Tambien te añado que lo mejor es trabajar con CSV, no se si lo has pensando usar o si es obligado usar xls.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 14/08/2009 a las 07:56
  #5 (permalink)  
Antiguo 14/08/2009, 08:02
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Php Excel y Base de Datos

la idea es generar reportes pero no en el explorador si no en un documento tal que el usuario pueda moverlos o modificarlos (es decir imprimirlos, llevarlos a otra pc, entre otros) y pues no tengo la menor idea de lo del CSV me podrias explicar???

Provare el Codigo que me pasastes...
  #6 (permalink)  
Antiguo 14/08/2009, 08:07
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Php Excel y Base de Datos

El codigo que te di, pasa la información de una base de datos a un archivo de Excel. Aqui tienes informacion sobre lo que es CSV. Como usarlo te sugiero que leas sobre lo que se conoce como filesystem especificamente sobre fgetcsv y fputcsv
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 14/08/2009, 08:16
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Php Excel y Base de Datos

Amigo probe tu codigo y esta bueno pero sigue sin arrojar lo que necesito la cual es UN MEMBRETE necesito que arriba de la tabla exista un mebrete (Imagen y TExto) y no lo hace :S :S :S y no entiendo nada de lo CSV :S
  #8 (permalink)  
Antiguo 14/08/2009, 08:33
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Php Excel y Base de Datos

Si te fijas cuando grabas el documento en excel desde PHP (sin el membrete) y le das click derecho para ver el codigo fuente, vas a ver que es un HTML. El problema de grabarlo de esta forma es que la imagen la tienes que llamar desde afuera y vas a tener que cuando el usuario baje el documento de excel tambien baje la foto. De la mejor forma ya sería con PHPExcel (no te puedo ayudar mucho con ello porque no me he visto en la necesidad de usarlo y lo que he hecho son pruebas con sus codigo de PHPExcel a ver como los convertia, pero no profundice con el codigo). Tendrías que ver como convertir una imagen a binario para luego insertarla en un codigo o verificar si PHPExcel tiene alguna funcion que inserte la imagen.

Puedes hacer un membrete sin necesidad de una imagen, por ejemplo que haya un texto y con CSS lo modificas a tu gusto.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 14/08/2009, 08:53
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Php Excel y Base de Datos

Bueno amigo lo que estoy haciendo por los momentos es mostrar el reporte en la tabla en php y un boton imprimir que deberia de desaparecer cuando le dan clic sobre el...

Gracias de todas maneras ese codigo me sirve para algunas cosillas mias =)
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 19:12.