Foros del Web » Programando para Internet » PHP » Zend »

Css en Zend Framework para reporte en Excel

Estas en el tema de Css en Zend Framework para reporte en Excel en el foro de Zend en Foros del Web. Tengo un problema quiero crear un css o una plantilla para exportar la informacion en un documento de excel.. me sale de forma simple lo ...
  #1 (permalink)  
Antiguo 04/10/2011, 15:27
Avatar de vanegasjd  
Fecha de Ingreso: octubre-2011
Ubicación: Armenia, Quindio
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Css en Zend Framework para reporte en Excel

Tengo un problema quiero crear un css o una plantilla para exportar la informacion en un documento de excel.. me sale de forma simple lo que deseo es colocarle colores titulos etc la parte bonita!!!
  #2 (permalink)  
Antiguo 04/10/2011, 15:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Css en Zend Framework para reporte en Excel

En ese caso deberías de usar una librería como PHPExcel para escribir tu reporte en excel, o ¿como es que estas generando tu documento de excel?
  #3 (permalink)  
Antiguo 04/10/2011, 15:40
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 22 años, 5 meses
Puntos: 35
Respuesta: Css en Zend Framework para reporte en Excel

Mi recomendacion para trabajar con archivos excel en PHP es esta libreria: http://phpexcel.codeplex.com/

Tiene una impresioannte cantidad de opciones que puedes usar para darles formato a tus archivos.

Saludos!
__________________
Sin Ideas
  #4 (permalink)  
Antiguo 04/10/2011, 15:51
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 15 años, 5 meses
Puntos: 269
Respuesta: Css en Zend Framework para reporte en Excel

hola venegasjd, dale estilo a la tabla que queres exportar y cuando la exportes saldra con css y todo.
  #5 (permalink)  
Antiguo 04/10/2011, 15:54
Avatar de vanegasjd  
Fecha de Ingreso: octubre-2011
Ubicación: Armenia, Quindio
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Css en Zend Framework para reporte en Excel

TENGO EL MODELO: ///////////

<?php
/**
* reportesModel
*
* @author Vanegas-SENA
* @version
*/
require_once 'Zend/Db/Table/Abstract.php';
class reportesModel extends Zend_Db_Table_Abstract
{
/**
* The default table name
*/
protected $_name = 'proveedores';

public function actualizar()
{
$select = $this->select();
$select->order('nombre');
return $this->fetchAll($select);
}
}


ESTA ES LA VISTA://///////

<?php
header("Pragma: public");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: pre-check=0, post-check=0, max-age=0");
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Transfer-Encoding: none");
header("Content-Type: application/vnd.ms-excel;");
header("Content-type: application/x-msexcel");
header("Content-Disposition: attachment; filename=report2_opendebitsummary".date('Ymd').".x ls");


?>
<html>
<body>
<table border="1">
<tr>
<td>Nombre</td>
<td>Descripcion</td>

</tr>
<?php foreach($this->proveedores as $order):?>
<tr>
<td><?php echo $this->escape($order -> nombre);?></td>
<td><?php echo $this->escape($order -> descripcion);?></td>
</tr>
<?php endforeach;?>
</table>
</body>
</html>


Y EL CONTROLADOR:

<?php
/**
* reportesController
*
* @author
* @version
*/
require_once 'Zend/Controller/Action.php';
class reportesController extends Zend_Controller_Action
{
/**
* The default action - show the home page
*/
public function indexAction ()
{

}

public function reportesAction(){
//llamo a mi modelo
$order = new reportesModel();
$this->view->proveedores=$order->actualizar();


}
}

LO HAGO CON ESTE SCRIPT PERO ME SALE ALGO SIMPLE ASI:


|nombre|telefono|direccion |
|lalala |44444 | mm 43 casa 1 |
|juju | 12121 | kj 12 num 23 |





y lo que desearia CLARO QUE ALGO MAS BONITO

REPORTE DE PROVEEDORES

|nombre|telefono|direccion |
|lalala |44444 | mm 43 casa 1 |
|juju | 12121 | kj 12 num 23 |

FECHA:0000/00/00 [COLOR="rgb(46, 139, 87)"]HORA[/COLOR]:00:00
  #6 (permalink)  
Antiguo 04/10/2011, 16:29
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 15 años, 5 meses
Puntos: 269
Respuesta: Css en Zend Framework para reporte en Excel

te comparto uno que tengo hecho, modelo y vista en un mismo archivo. verás que los estilos los doy en la tabla, luego cuando abris con excel te respeta los estilos.

Código PHP:
Ver original
  1. <?php
  2.     header("Content-type: application/vnd.ms-excel,");
  3.     header("Content-Disposition: attachment; filename=nombredelarchivo.xls");
  4.    
  5.     include("../core/abstract.db.php");
  6.     include("../core/funciones.php");
  7.    
  8.     $clave = "*********";
  9.     include("../core/mcrypt.php");
  10.    
  11.     function getTicketsUser($iduser){
  12.         $clave = "*********";
  13.         $consulta="SELECT * FROM users WHERE idusers = ".$iduser."";
  14.         $conexion  = crear_conexion(SERVER,USER,PASS); $db = DATABASE;
  15.         $resultado = consulta_base_de_datos($consulta, $db, $conexion);
  16.         if ($row = obtener_resultados($resultado))
  17.         {
  18.                 $row = desencripta($clave,$row["firstname"])." ".desencripta($clave,$row["lastname"]);     
  19.         }
  20.         return $row;
  21.     }
  22.  
  23.     $consulta="SELECT * FROM tickets";
  24.     $conexion  = crear_conexion(SERVER,USER,PASS); $db = DATABASE;
  25.     $resultado = consulta_base_de_datos($consulta, $db, $conexion);
  26.     $tikets = array();
  27.     while ($row = obtener_resultados($resultado))
  28.     {
  29.             if($row["users_idusers"]){
  30.             $row["users_idusers"] = getTicketsUser($row["users_idusers"]);
  31.             $tikets[] = $row;
  32.             }
  33.             else{
  34.             $tikets[] = $row;
  35.             }
  36.     }
  37.    
  38.     $thead = "
  39.     <table>
  40.         <tr style='background:black; color:white; font-weight:bold;'>
  41.            <th style='border:1px solid white;'>código único</th>
  42.            <th style='border:1px solid white;'>usuario</th>
  43.            <th style='border:1px solid white;'>número de ticket</th>
  44.        </tr>
  45.     ";
  46.     echo utf8_decode($thead);
  47.     foreach ($tikets as $ticket):
  48.             echo "<tr>";
  49.                 echo "<td style='border:1px solid black;'>".utf8_decode($ticket['idtickets'])."</td>";
  50.                 echo "<td style='border:1px solid black;'>".utf8_decode($ticket['users_idusers'])."</td>";
  51.                 echo "<td style='border:1px solid black;'>".utf8_decode($ticket['ticketnumber'])."</td>";
  52.             echo "</tr>";
  53.         endforeach;
  54.     echo "</table>";
  55.     cerrar_conexion($conexion);
  56.    
  57. ?>

Saludos.
  #7 (permalink)  
Antiguo 04/10/2011, 16:39
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 14 años, 1 mes
Puntos: 511
Respuesta: Css en Zend Framework para reporte en Excel

Cita:
Iniciado por cristian_cena Ver Mensaje
te comparto uno que tengo hecho, modelo y vista en un mismo archivo. verás que los estilos los doy en la tabla, luego cuando abris con excel te respeta los estilos.
Efectivamente lo que dices es cierto, ya que para darle estilo a un xls o xlsx es generar los estilos dentro de la tabla en donde lo creas, ya que si mandas llamar una hoja de estilos por lo regular te genera un error al crear el archivo de Excel ya que el archivo se visualiza fuera del servidor web por lo que no puede tener acceso a los archivos.

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125

Etiquetas: css, excel, framework, reporte
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:11.