Bluetom

php转xls

毕业设计做到php导出xls

选课课表阶段时候,网上资料各种坑

自己改下

贴上代码

<?php

// Datebase Config

$server="localhost";
$database="xuanke";
$databaseuser="root";
$databasepassword="";
$table="tb_course";

$e = new Excel();   //实例化
$savename = date("YmjHis").".xls"; //导出excel文件名
$e->generar($server,$database,$databaseuser,$databasepassword,$table,$savename);

class Conector {
        function abrirbase($server,$database,$dbuser,$pass) {
            $link=mysql_connect($server,$dbuser,$pass);
            if (!$link)
                die("
faild");
                mysql_set_charset("utf8",$link);
                mysql_select_db($database,$link)
            or die ("
$database:".mysql_error());
            return $link;
        }
}

class Excel {

    private $conector;

    function generar($server,$database,$dbuser,$pass,$table,$nombreArchivo) {
        $c=new Conector();
        $c->abrirbase($server,$database,$dbuser,$pass);

        $querytxt="SELECT * FROM ".$table.";";
        $result=mysql_query($querytxt);

        if (mysql_error()) {
            die("
".mysql_error());
        }

        if (mysql_num_rows($result)==0) {
            die("
没有此表");
        }

    // Functions for export to excel.
        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 ) {
        $Value = iconv("UTF-8", "gb2312", $Value);  //强制转换GBK
        $L = strlen($Value);
        echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
        echo $Value;
        return;
    }

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=".$nombreArchivo);
header("Content-Transfer-Encoding: binary ");

xlsBOF();

$i = 0;
while ($i < mysql_num_fields($result)) {
    $meta = mysql_fetch_field($result, $i);
    if (!$meta) {
        echo "nopes\n";
    }
    xlsWriteLabel(0,$i,$meta->name);
    $fieldnames[$i]=$meta->name;
    $fieldtype[$i]=$meta->numeric;
    $i++;
}

$xlsRow = 1;
$j=0;

while($row=mysql_fetch_array($result)){
    for ($j=0;$j<$i;$j++) {
        if ($fieldtype[$j]==0) {
            xlsWriteLabel($xlsRow,$j,$row[$fieldnames[$j]]);
        }
        else {
            xlsWriteNumber($xlsRow,$j,$row[$fieldnames[$j]]);
        }
    }

$xlsRow++;
}
xlsEOF();
}
}
?>

?&gt;

Bluetom

作为挨踢业的前段湿 搬过砖也画过画:爱看、爱听、爱玩儿、爱折腾、爱打撸啊撸、intj

Proudly published with Hexo