Foros del Web » Programando para Internet » PHP »

limites usando Spreadsheet::WriteExcel

Estas en el tema de limites usando Spreadsheet::WriteExcel en el foro de PHP en Foros del Web. Buenas, he integrado Spreadsheet::WriteExcel para exportar listados de php a excel y actualmente funciona correctamente pero pagina los resultados. Si genero un informe de 800 ...
  #1 (permalink)  
Antiguo 28/02/2012, 09:16
Avatar de crissrocca  
Fecha de Ingreso: febrero-2011
Mensajes: 51
Antigüedad: 13 años, 10 meses
Puntos: 1
limites usando Spreadsheet::WriteExcel

Buenas, he integrado Spreadsheet::WriteExcel para exportar listados de php a excel y actualmente funciona correctamente pero pagina los resultados. Si genero un informe de 800 lineas, me muestra exportar a excel ese listado en varios .xls

Me gustaria saber como se hace para cambiar esos limites, he modificado las siguientes lineas, pero continua igual.
Código PHP:
        // The maximun length for a BIFF record. See _add_continue()
       // Excel 2011 maximun 16384 kb
        
$this->_limit      16384;   

function 
_add_continue($data)
    {
        
$limit      $this->_limit;
        
$record     0x003C;         // Record identifier
 
        // The first 2080/8224 bytes remain intact. However, we have to change
        // the length field of the record.
        
$tmp substr($data02).pack("v"$limit-4).substr($data4$limit 4);
        
        
$header pack("vv"$record$limit);  // Headers for continue records
 
        // Retrieve chunks of 2080/8224 bytes +4 for the header.
        
for($i $limit$i strlen($data) - $limit$i += $limit)
        {
            
$tmp .= $header;
            
$tmp .= substr($data$i$limit);
        }

        
// Retrieve the last chunk of data
        
$header  pack("vv"$recordstrlen($data) - $i);
        
$tmp    .= $header;
        
$tmp    .= substr($data,$i,strlen($data) - $i);
 
        return(
$tmp);
    } 
  #2 (permalink)  
Antiguo 28/02/2012, 11:48
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 3 meses
Puntos: 331
Respuesta: limites usando Spreadsheet::WriteExcel

Hola crissrocca, te recomiendo que leas la documentación de la librería / framework que estás utilizando, la pregunta es muy particular y el código que posteas no tiene nada que ver con el problema. Si estás paginando resultados y la librería / framework tiene un diseño decente, entonces el paginador será un método / función que tomará como parámetro el return de la función que posteas. Claro que todo esto te lo digo en el aire sin ver más código que el que posteas, saludos
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 28/02/2012, 12:12
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: limites usando Spreadsheet::WriteExcel

Si estás usando la librería excel writer de pear, ésta tiene un límite natural impuesto por el formato de excel, el cual por cierto es de alrededor de 65000 filas. Puedes tratar de saltar este límite mediante la configuración del BIFF, aunque en realidad te recomendaría mejor usar phpexcel de codeplex, que es mucho más versátil, pudiendo leer/escribir los formatos de excel desde los antiguos al actuall
  #4 (permalink)  
Antiguo 28/02/2012, 12:42
Avatar de crissrocca  
Fecha de Ingreso: febrero-2011
Mensajes: 51
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: limites usando Spreadsheet::WriteExcel

Me gustaria saber como modificar el BIFF, ya que los pequeños cambios que he realizado no me han dado resultado y realmente no se cual es el php que tengo que tocar. He probado con el BIFFwriter.php pero no consigo ningun resultado.

El tema de usar PHPExcel puede ser una opcion, pero realmente todo esta montado ya sobre esta plataforma y cambiarlo ahora me puede dar mas problemas que intentar modificar los parametros del BIFF.

Sabes como se manipula el tamaño total de paginacion?
  #5 (permalink)  
Antiguo 28/02/2012, 13:09
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: limites usando Spreadsheet::WriteExcel

No indicas si estás usando realmente el excelwriter php, de ser así, con el setversion:
Código PHP:
Ver original
  1. require_once "excel_writer/Writer.php";
  2.     $workbook = new Spreadsheet_Excel_Writer("archivo.xls");
  3.     $workbook->SetVersion(8);//indicas el último biff soportado por excel writer.
  #6 (permalink)  
Antiguo 01/03/2012, 12:31
Avatar de crissrocca  
Fecha de Ingreso: febrero-2011
Mensajes: 51
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: limites usando Spreadsheet::WriteExcel

Buenas, ya lo tengo solucionado. En un principio una variable delimitada el tamaño total maximo del excel, ahora ya se insertan tantas filas como existan en el excel hasta un maximo de 1048500.

Ahora mismo todo parece funcionar correctamente, lo unico que el excell no incluye los campos, muestra el siguiente mensaje "Can't create temporary file.". Entiendo que puede ser por algun permiso en las carpetas del server, tan solo tengo que ver cual es la carpeta que se utiliza de forma temporal para crear el xls.

gracias!

Etiquetas: excel, spreadsheet, writeexcel
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 20:58.