Generar Archivo de Excel

edited noviembre 2010 in Beta1
Hola estoy tratando de generar una archivo en excel , e intentado varios ejemplos que encontré pero ninguno me funciona, en realidad si genera un archivo pero lo genera vacío... uno de los ejemplos que use el ejemplo de la misma documentación de Spreadsheet_Excel_Writer y igual genera un archivo vacío, tengo el office 2007 no se si eso será el problema espero me puedan ayudar. gracias!

public function genera_excel()
{
$this->set_response("view");

$workbook = new Spreadsheet_Excel_Writer();
$workbook->setTempDir('public/temp');

$format_bold =& $workbook->addFormat();
$format_bold->setBold();
$format_title =& $workbook->addFormat();
$format_title->setBold();
$format_title->setColor('yellow');
$format_title->setPattern(1);
$format_title->setFgColor('blue');

$worksheet =& $workbook->addWorksheet();
$worksheet->write(0, 0, "Quarterly Profits for Dotcom.Com", $format_title);
// While we are at it, why not throw some more numbers around
$worksheet->write(1, 0, "Quarter", $format_bold);
$worksheet->write(1, 1, "Profit", $format_bold);
$worksheet->write(2, 0, "Q1");
$worksheet->write(2, 1, 0);
$worksheet->write(3, 0, "Q2");
$worksheet->write(3, 1, 0);

$workbook->send('test.xls');
$workbook->close();
}

Comentarios

  • Le voy a comentar a nuestro amigo FiDeLio que tiene mucha experiencia con el manejo de excel...
  • edited 6:25
    Hola
    acorde al código que muestra concluyo que todo esta dentro del controlador

    en el controlador se recuperan los datos que se van a mostrar y se indica que no se quiere renderizar el template de la app, para eso usamos
    $this->set_response("view");
    
    de modo que el controlador nos quedaría algo así
    public function ejemplo(){
            $this->set_response("view");
            $this->reporte = $this->Modelo->find();
    }
    


    lo que tiene por código es la salida del xls y este debe ir en la vista

    en la vista ejemplo.phtml
    <?php
    View::content();
    if(isset($reporte))
    {
    Load::lib('excel');
    $libro = new Spreadsheet_Excel_Writer();
    $hoja = $libro->addWorksheet("Hoja1");
    $hoja->setInputEncoding('utf-8');
    $negrita =& $libro->addFormat();
    $negrita->setBold();
    $negrita->setColor('blue');
    
    $row = 0;
    $hoja->write($row, 2, 'Descripcion', $negrita);
    $hoja->write($row, 5, 'Fecha', $negrita);
    $hoja->write($row, 8, 'Empresa', $negrita);
    
    $row = 1;
    foreach($reporte as $registro):
        $hoja->write($row, 2, $registro->descripcion);
        $hoja->write($row, 5, $registro->creada_at);
        $hoja->write($row, 8, $registro->empresa);
        $row++;
    endforeach;
    
    $libro->send("ejemplo.xls");
    $libro->close();
    }
    else{
        Flash::error('No hay datos para mostrar');
    }
    ?>
    

    esa es la forma ordenada de realizar la salida para excel

    nos cuenta como le va con el tema
    Saludos!!
  • Excelente demostración Onizucar!!
  • edited 6:25
    Bueno parece que estoy un poco lento, <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> esta bien. ahora hablando del mismo tema. con el tiempo me he dado cuenta de varias cosas para programar un poco mas ordenado, ejemplo. si es una salida xls indicar al set_response un xls. asi podrás utilizar esa misma vista para una salida excel, pdf, doc, html. lo que se le ocurra al cliente solo debes preocuparte de que pasen los datos o el modelo a la vista y en la vista creas sa salida ('xls', 'pdf', etc..), ejemplo

    en el controller puedes indicar de esta manera siguiendo el mismo ejemplo.
    public function ejemplo(){
            $this-&gt;set_response(&quot;xls&quot;);
            $this-&gt;reporte = $this-&gt;Modelo-&gt;find();
    }
    

    tu vista debe llamar
    ejemplo&#46;xls&#46;phtml
    
    ahora si haces lo mismo con un pdf o xml
    public function ejemplo(){
            $this-&gt;set_response(&quot;xml&quot;);
            $this-&gt;reporte = $this-&gt;Modelo-&gt;find();
    }
    
    ejemplo&#46;xml&#46;phtml
    


    tambien de esta otra forma

    public function ejemplo($type){
            $this-&gt;set_response($type);
            $this-&gt;reporte = $this-&gt;Modelo-&gt;find();
    }
    



    exitos!!!!

  • Hola gracias por sus respuestas...pero no he podido resolver el problema <!-- s:cry: --><img src="{SMILIES_PATH}/icon_cry.gif" alt=":cry:" title="Crying or Very sad" /><!-- s:cry: -->
    intenté de la manera que posteó Fidelio poniendo set_response('xls') y llamando a la vista "vista.xls.phtml" pero me muestra un error diciendo que no se encuentra la vista "vista.phtml" como si no le hiciera caso al set_Response('xls')

    intenté haciendo de la forma en que posteó Onizukar y me genera un archivo de excel pero con todo esta información que pongo... no si antes decirme que "el archivo tiene otro formato que el especificado por la extensión"
    espero que me puedan seguir ayudando..gracias

    <br />
    <b>Strict Standards</b>: Non-static method OLE::Asc2Ucs() should not be called statically, assuming $this from incompatible context in <b>C:\wamp\www\gym\core\vendors\excel\writer\workbook.php</b> on line <b>586</b><br />
    <br />
    <b>Strict Standards</b>: is_a(): Deprecated. Please use the instanceof operator in <b>C:\wamp\www\gym\core\vendors\excel\main.php</b> on line <b>320</b><br />
    <br />
    <b>Strict Standards</b>: Non-static method OLE::Asc2Ucs() should not be called statically, assuming $this from incompatible context in <b>C:\wamp\www\gym\core\vendors\excel\OLE\PPS\root.php</b> on line <b>52</b><br />
    <br />
    <b>Strict Standards</b>: Non-static method OLE::LocalDate2OLE() should not be called statically, assuming $this from incompatible context in <b>C:\wamp\www\gym\core\vendors\excel\OLE\PPS.php</b> on line <b>184</b><br />
    <br />
    <b>Strict Standards</b>: Non-static method OLE::LocalDate2OLE() should not be called statically, assuming $this from incompatible context in <b>C:\wamp\www\gym\core\vendors\excel\OLE\PPS.php</b> on line <b>185</b><br />
    <br />
    <b>Strict Standards</b>: Non-static method OLE::LocalDate2OLE() should not be called statically, assuming $this from incompatible context in <b>C:\wamp\www\gym\core\vendors\excel\OLE\PPS.php</b> on line <b>184</b><br />
    <br />
    <b>Strict Standards</b>: Non-static method OLE::LocalDate2OLE() should not be called statically, assuming $this from incompatible context in <b>C:\wamp\www\gym\core\vendors\excel\OLE\PPS.php</b> on line <b>185</b><br />
    ÐÏࡱá;þÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ

    þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ l ÉBäHoja1=¼%r8X"1ÈÿArial1ÈÿArial1ÈÿArial1ÈÿArial1ÈÿArial1ȐArial1ȼArialàõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À à À à À à À “€ÿ’â8ÿÿÿÿÿÿÿÿÿÿÿÿ€€€€€€€€€ÀÀÀ€€€™™ÿ™3fÿÿÌÌÿÿffÿ€€fÌÌÌÿ€ÿÿÿÿÿÿ€€€€€ÿÌÿÌÿÿÌÿÌÿÿ™™Ìÿÿ™ÌÌ™ÿÿÌ™3fÿ3ÌÌ™ÌÿÌÿ™ÿfff™–––3f3™f333™3™3f33™333…QHoja1
    l É*+€‚Áƒ„&è?'è?(ð?)ð?¡"dXXà?à?
    Descripcion
    FechaEmpresa>

    Root Entryÿÿÿÿÿÿÿÿ ÀF€¬«Í|Ë€¬«Í|Ë€Book
    ÿÿÿÿÿÿÿÿÿÿÿÿ ÀFgþÿÿÿþÿÿÿþÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<br />
    <b>Strict Standards</b>: is_a(): Deprecated. Please use the instanceof operator in <b>C:\wamp\www\gym\core\vendors\excel\main.php</b> on line <b>320</b><br />
    <br />
    <b>Strict Standards</b>: is_a(): Deprecated. Please use the instanceof operator in <b>C:\wamp\www\gym\core\vendors\excel\main.php</b> on line <b>320</b><br />
    <br />
    <b>Strict Standards</b>: is_a(): Deprecated. Please use the instanceof operator in <b>C:\wamp\www\gym\core\vendors\excel\main.php</b> on line <b>320</b><br />
  • edited 6:25
    que versión de php tiene ?
    recuerde que debe ser 5.2
  • Hola,
    Estoy usando la versión 5.2.11 de php
  • edited 6:25
    no le veo el error
    pase por el irc y hablamos en detalle para ayudarle mejor
    Saludos!!
  • edited 6:25
    En el irc paso alguien con el mismo problema

    lo solucionamos con omitir los errores de las funciones deprecated que se tienen con la linea
    ini_set('display_errors', 'Off');
    

    si por cosas de la vida no le funciona intente omitir el renderizado del template con
    $this-&gt;template = NULL;
    
    en el controller

    pruebe poner eso en el controller y nos cuenta
    saludos
  • edited 6:25
    Hola Onizukar,

    Gracias por responder, te cuento con esas dos líneas pude solucionar la parte del error que sale en excel...

    Strict Standards: is_a(): Deprecated. Please use the instanceof operator in C:\wamp\www\gym\core\vendors\excel\main.php on line 320


    esas partes ya no salen...pero siguen saliendo estas ¬¬

    ÐÏࡱá;þÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ

    þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ l ÉBäHoja1=¼%r8X"1ÈÿArial1ÈÿArial1ÈÿArial1ÈÿArial1ÈÿArial1ȐArial1ȼArialàõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À àõÿ À à À à À à À

    espero tengas alguna otra solución... gracias!
    \}}»»“€ÿ’â8ÿÿÿÿÿÿÿÿÿÿÿÿ€€€€€€€€€ÀÀÀ€€€™™ÿ™3fÿÿÌÌÿÿffÿ€€fÌÌÌÿ€ÿÿÿÿÿÿ€€€€€ÿÌÿÌÿÿÌÿÌÿÿ™™Ìÿÿ™ÌÌ™ÿÿÌ™3fÿ3ÌÌ™ÌÿÌÿ™ÿfff™–––3f3™f333™3™3f33™333…QHoja1
    l É*+€‚Áƒ„&è?'è?(ð?)ð?¡"dXXà?à?
    Descripcion
    FechaEmpresa>

    Root Entryÿÿÿÿÿÿÿÿ ÀF€¬«Í|Ë€¬«Í|Ë€Book
    ÿÿÿÿÿÿÿÿÿÿÿÿ ÀFgþÿÿÿþÿÿÿþÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<br
  • edited 6:25
    hola
    eso sucede siempre que hay un error en los datos que el envía al excel (como lo he mencionado anteriormente)

    para ayudarle necesito 2 cosas:
    1. El código de esa parte del controller y vista que actualmente esta usando (el que nos mostró al principio del post no coincide con los errores que esta mostrando)
    2. Nos muestre la salida de echo var_dump($objeto_con_los_datos); para ver que datos se han cargado desde la BD
    ya con eso podre dar un mejor consejo

    saludos!!
  • edited 6:25
    a mi me da el mismo error uso kumbia 1.0 beta 1
    el modelo usuario.php
    <?php
    class Usuarioextends ActiveRecord
    {

    public function findByName($conditions){
    return $this->find("nomest like '$conditions'");
    }
    }
    ?>
    el controlador es usuario_controler.php
    <?php
    Load::lib('excel');
    Load::model('usuario');
    class UsuarioController extends ApplicationController{
    public function sendfile(){
    $this->set_response('view');//beta 1
    //View::response('xls');//beta 2
    $usuario= new Usuario();
    if(!$this->usuario= $usuario->findByName('%')){
    Flash::warning('No existen registros para exportar');
    $this->render(NULL);
    }
    }
    }
    ?>
    la vista usuario/sendfile.phtml
    <?php
    ini_set('display_errors', 'Off');
    //View::content();
    //Load::lib('excel');
    //invoco la clase para generar el libro excel
    $libro = new Spreadsheet_Excel_Writer();

    //creo una hoja, es decir, puedo crear N hojas
    $hoja1 = $libro->addWorksheet("Hoja1");

    //charset
    $hoja1->setInputEncoding('utf-8');

    //Formato de letra, en este caso negrita, existen más, números, fecha, etc...
    $negrita =& $libro->addFormat();
    $negrita->setBold();

    //titulos
    $hoja1->write(0, 0, "ID", $negrita);
    $hoja1->write(0, 1, "NOMBRE", $negrita);

    //detalle
    /*$row = 1;
    foreach($ceestp as $usuario):
    $hoja1->write($row, 0, $usuario->numcar);
    $hoja1->write($row, 1, $usuario->nomest);
    $row++;
    endforeach;*/
    $libro->send("ejemplo.xls");
    $libro->close();
    ?>
    el error
    ��ࡱ�;�� ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ l �B�Hoja1=�%r8X"1���Arial1���Arial1���Arial1���Arial1���Arial1��Arial1���Arial��� � ��� � ��� � ��� � ��� � ��� � ��� � ��� � ��� � ��� � ��� � ��� � ��� � ��� � ��� � � � � � � � �����8�������������������������������3f������ff���f����������������������������������̙��̙3f�3���������fff����3f3�f333�3�3f33�333�QHoja1 l �*+������&�?'�?(�?)�?�"dXX�?�? IDNOMBRE�)�gA MARIA> � Root Entry�������� �F��/�׼���/�׼��Book ������������ �Fo������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
  • edited enero 2011
    Hola Onizukar,

    la última prueba que he hecho ha sido simplemente para mostrar datos sin consultar a bd, aquí te dejo lo del controller y la vista.

    el ini_set('display_errors', 'Off'); lo he puesto en el controller y en la vista y resulta lo mismo; en la vista e intentado con y sin setInputEncoding('utf-8'); ademas con y sin
    View::content(); en la vista


    ////////////Controller

    public function genera_excel(){

    ini_set('display_errors', 'Off');
    $this->template = NULL;
    $this->set_response("view");

    }

    ////////////Vista genera_excel.phtml

    <?php

    View::content();
    Load::lib('excel');
    $libro = new Spreadsheet_Excel_Writer();
    $hoja =& $libro->addWorksheet("Hoja1");

    $row = 0;
    $hoja->write($row, 2, 'Descripcion');
    $hoja->write($row, 5, 'Fecha');
    $hoja->write($row, 8, 'Empresa');
    $row = 1;

    $hoja->write($row, 2, "a");
    $hoja->write($row, 5, "b");
    $hoja->write($row, 8, "c");


    $libro->send("ejemplo.xls");
    $libro->close();

    ?>


    Gracias por tu ayuda.
  • edited enero 2011
    error bastante simple que no lo había notado antes

    <?php <br />
    View::content();


    elimine ese <br/>
  • edited enero 2011
    Hola ,

    No! ese salto de línea < b r /> apareció aca al momento de copiar el código :S
Sign In or Register to comment.