Edición de «Generar y Leer archivos excel (xls) con KumbiaPHP»

De KumbiaPHP Framework Wiki

Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.

Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.

Revisión actual Tu texto
Línea 1: Línea 1:
 
= Creando un archivo excel en KumbiaPHP  =
 
= Creando un archivo excel en KumbiaPHP  =
  
Esto es un tema sencillo, solo hay que implementar las buenas practicas de programación.
+
Esto es un tema sencillo, solo hay que implementar las buenas practicas de pogramación.
  
Para implementar el tema de las 3 capas veamos un ejemplo sencillo
+
Para implemantar el tema de las 3 capas veamos un ejemplo sencillo
  
 
listado de nombres de usuarios. (id y nombre);
 
listado de nombres de usuarios. (id y nombre);
Línea 18: Línea 18:
  
  
= Programación MVC =
+
= Programacion MVC =
  
 
'''Modelo'''
 
'''Modelo'''
Línea 66: Línea 66:
 
class Usuarios extends ApplicationController{
 
class Usuarios extends ApplicationController{
 
public function sendFile(){
 
public function sendFile(){
                View::template(NULL); //Agregado para que no envié todo el html(Beta2). En Beta1 $this->template=NULL
+
$this->set_response('xls');
View::response('xls');
 
 
$usuarios = new Usuarios();
 
$usuarios = new Usuarios();
 
if(!$this->usuarios = $usuarios->findByName('%')){
 
if(!$this->usuarios = $usuarios->findByName('%')){
Línea 78: Línea 77:
 
</source>
 
</source>
  
Creamos una vista con el nombre ''' sendFile.xls.phtml ''' por que le estamos indicando una salida xls '''View::response('xls')''' en beta2 y en beta1 ''' $this->set_response('xls') '''
+
Vista con el nomnbre ''' sendFile.xls.phtml '''
 +
 
 
<source lang='php'>
 
<source lang='php'>
 
<?php
 
<?php
Línea 113: Línea 113:
 
$row = 1;
 
$row = 1;
 
foreach($usuarios as $usuario):
 
foreach($usuarios as $usuario):
     $hoja1->write($row, 0, $usuario->id);
+
     $hoja->write($row, 0, $usuario->id);
     $hoja1->write($row, 1, $usuario->nombre);
+
     $hoja->write($row, 1, $usuario->nombre);
 
     $row++;
 
     $row++;
 
endforeach;
 
endforeach;
Línea 122: Línea 122:
 
</source>
 
</source>
  
Con esto tenemos un ejemplo sencillo y bien hecho, no deben olvidar que una programacion MVC les ayudara con el tiempo a realizar mantenciones y en este caso hacer otra salida que no sea un excel, por ejemplo un pdf, solo hay que crear una vista sin tocar el controlador ni el modelo.
+
con esto tenemos un ejemplo sencillo y bien hecho, no deben olvidar que una programacion MVC les ayudara con el tiempo a realizar mantenciones y en este caso hacer otra salida que no sea un excel, por ejemplo un pdf, solo hay que crear una vista sin tocar el controlador no el modelo.
  
 
El modelo debe tener contacto con la base de datos. el controlador solo envia esos datos a la vista, pero ni uno de los dos deben estar en contacto con la base de datos.
 
El modelo debe tener contacto con la base de datos. el controlador solo envia esos datos a la vista, pero ni uno de los dos deben estar en contacto con la base de datos.
Línea 274: Línea 274:
  
 
PD: es mejor utilizar el create en vez del save, cuando uno debe insertar muchos registros el tiempo de respuesta es más rápido.
 
PD: es mejor utilizar el create en vez del save, cuando uno debe insertar muchos registros el tiempo de respuesta es más rápido.
 
= Errores Conocidos =
 
 
=== Notice: Uninitialized string offset: 2199023255040 in /../../oleread.inc ===
 
 
La solución es remplazar el contenido de la función '''GetInt4d''' de la siguiente manera.
 
 
<source lang='php'>
 
function GetInt4d($data, $pos){
 
  $_or_24 = ord($data[$pos+3]);
 
  if ($_or_24>=128)
 
    $_ord_24 = -abs((256-$_or_24) << 24);
 
  else
 
    $_ord_24 = ($_or_24&127) << 24;
 
  return ord($data[$pos]) | (ord($data[$pos+1]) << 8) | (ord($data[$pos+2]) << 16) | $_ord_24;
 
}
 
</source>
 
 
 
 
[[Categoría:Tutoriales KumbiaPHP]]
 

Ten en cuenta que todas las contribuciones a KumbiaPHP Framework Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Proyecto:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)