Página 1 de 1

Libreria para exportar a xls y/o .pdf

Publicado: Mié, 14 Ago 2013, 13:55
por frizquierdo
Necesito una libreria para exportar a .xls y otra para .pdf.
alguien pudiera ayudarme con estas. ?????

Re: Libreria para exportar a xls y/o .pdf

Publicado: Mié, 14 Ago 2013, 19:29
por hugo
Exportar desde donde?
Es decir, desde que programa o aplicación?

Re: Libreria para exportar a xls y/o .pdf

Publicado: Jue, 15 Ago 2013, 08:18
por frizquierdo
Hugo, disculpa, cierto; es desde PHP.
Para pdf conozco de la existencia de tcpdf.

Re: Libreria para exportar a xls y/o .pdf

Publicado: Sab, 17 Ago 2013, 03:42
por hugo
Si tienes aceso a internet, podrías hacer una búsqueda, pues aparentemente hay unas cuantas alternativas para lo que buscas.
Ahora, te advierto que hacer que la apariencia de un XLS coincida con la de un reporte, puede resultarte trabajoso.

Re: Libreria para exportar a xls y/o .pdf

Publicado: Mar, 20 Ago 2013, 10:59
por frizquierdo
Sobre acceso a internet no, no tengo, conozco de una libreria para exportar a pdf, se llama tcPdf, para el caso de xls, no tengo ni nombre de libreria.

Alguien puede ayudarme con eso ?!?!?!?!?

Re: Libreria para exportar a xls y/o .pdf

Publicado: Mar, 17 Sep 2013, 23:12
por hugo
Algunos enlaces útiles:

http://code.google.com/p/phpexportxlsclass/
http://www.codeplex.com/PHPExcel/
https://github.com/PHPOffice/PHPExcel
http://www.phpclasses.org/xls-export
http://www.the-art-of-web.com/php/dataexport/

También hay ejemplos de código relativamente simples:

Código: Seleccionar todo

    <?php
    $filename ="excelreport.xls";
    $contents = "testdata1 \t testdata2 \t testdata3 \t \n";
    header('Content-type: application/ms-excel');
    header('Content-Disposition: attachment; filename='.$filename);
    echo $contents;
    ?>

Código: Seleccionar todo

    function xlsBOF() {
    echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
    }
    function xlsEOF() {
    echo pack("ss", 0x0A, 0x00);
    }
    function xlsWriteNumber($Row, $Col, $Value) {
    echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
    echo pack("d", $Value);
    }
    function xlsWriteLabel($Row, $Col, $Value) {
    $L = strlen($Value);
    echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
    echo $Value;
    }
    // prepare headers information
    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");
    header("Content-Disposition: attachment; filename=\"export_".date("Y-m-d").".xls\"");
    header("Content-Transfer-Encoding: binary");
    header("Pragma: no-cache");
    header("Expires: 0");
    // start exporting
    xlsBOF();
    // first row
    xlsWriteLabel(0, 0, "id");
    xlsWriteLabel(0, 1, "name");
    xlsWriteLabel(0, 2, "email");
    // second row
    xlsWriteNumber(1, 0, 230);
    xlsWriteLabel(1, 1, "John");
    xlsWriteLabel(1, 2, "john@yahoo.com");
    // third row
    xlsWriteNumber(2, 0, 350);
    xlsWriteLabel(2, 1, "Mark");
    xlsWriteLabel(2, 2, "mark@yahoo.com");
    // end exporting
    xlsEOF();

Código: Seleccionar todo

    <?php if (!$HTTP_GET_VARS['submit']) { ?>
    <?php
    echo "Export and Save Customer Data onto your Local Machine";
    echo '<form action="'. $phpself.'">';
    echo '<input type="submit" value="Export" name="submit"></form>';
    ?>
    <?php
    }
    else
    {
    $contents="Board Category,Questions,Answers\n";
    $user_query = mysql_query('select
    f.faqdesk_id
    , c.categories_id
    , f.faqdesk_question
    , c.categories_name
    , f.faqdesk_answer_short
    from faqdesk_description as f
    join faqdesk_to_categories as f2c
    on f.faqdesk_id = f2c.faqdesk_id
    join faqdesk_categories_description as c
    on f2c.categories_id = c.categories_id');
    while($row = mysql_fetch_array($user_query))
    {
    $contents.=$row[categories_name].",";
    $contents.=$row[faqdesk_question].",";
    $answer = str_replace(',', '\,', $row[faqdesk_answer_short]); // escape internalt commas
    $contents.=$answer."\n";
    }
    $contents = strip_tags($contents); // remove html and php tags etc.
    Header("Content-Disposition: attachment; filename=export.csv");
    print $contents;
    ?>

Código: Seleccionar todo

 function xlsBOF() {
    echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);  
    return;
}

function xlsEOF() {
    echo pack("ss", 0x0A, 0x00);
    return;
}

function xlsWriteNumber($Row, $Col, $Value) {
    echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
    echo pack("d", $Value);
    return;
}

function xlsWriteLabel($Row, $Col, $Value ) {
    $L = strlen($Value);
    echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
    echo $Value;
return;
} 

   // Query Database
    $result=mysql_db_query($dbname,"select id,prename,name,sname,grade from appdata where course='$courseid' and sec='$section'")

    // Send Header
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");;
    header("Content-Disposition: attachment;filename=$courseid-$sec.xls "); // แล้วนี่ก็ชื่อไฟล์
    header("Content-Transfer-Encoding: binary ");

    // XLS Data Cell

                xlsBOF();
                xlsWriteLabel(1,0,"Student Register $semester/$year");
                xlsWriteLabel(2,0,"COURSENO : ");
                xlsWriteLabel(2,1,"$courseid");
                xlsWriteLabel(3,0,"TITLE : ");
                xlsWriteLabel(3,1,"$title");
                xlsWriteLabel(4,0,"SETION : ");
                xlsWriteLabel(4,1,"$sec");
                xlsWriteLabel(6,0,"NO");
                xlsWriteLabel(6,1,"ID");
                xlsWriteLabel(6,2,"Gender");
                xlsWriteLabel(6,3,"Name");
                xlsWriteLabel(6,4,"Lastname");
                $xlsRow = 7;
                while(list($id,$prename,$name,$sname,$grade)=mysql_fetch_row($result)) {
                    ++$i;
                          xlsWriteNumber($xlsRow,0,"$i");
                          xlsWriteNumber($xlsRow,1,"$id");
                          xlsWriteLabel($xlsRow,2,"$prename");
                          xlsWriteLabel($xlsRow,3,"$name");
                          xlsWriteLabel($xlsRow,4,"$sname");
                    $xlsRow++;
                    }
                     xlsEOF();
                 exit();

Re: Libreria para exportar a xls y/o .pdf

Publicado: Vie, 20 Sep 2013, 08:41
por frizquierdo
Hugo, mi problema es con el acceso a sitios internacionales, la red de infomed no se extiende tanto al más allá.

Re: Libreria para exportar a xls y/o .pdf

Publicado: Vie, 20 Sep 2013, 15:46
por hugo
Me lo imagino, solo te ponia las direcciones para que tuvieras la referencia del nombre de los proyectos, y quizas en alguna oportunidad pudieras entrar desde otra red.