Easy way to create XLS file from PHP
Date: Wednesday, October 11 @ 09:52:55 ICT
Topic: PHP Language


         Everybody knows phpMyAdmin can export file to Excel format but phpMyAdmin just export .csv file,not real Excel file format. If you are interest in PHP programming and need to export to the real Excel format please check it out !

Example PHP export to XLS file format.

1. Create Function for XLS

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;
}



2. Send Header to Browser in download format.

   // 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();








This article comes from AppServNetwork
http://localhost

The URL for this story is:
http://localhost/modules.php?name=News&file=article&sid=8