你想生成真正的excel文件,还是xml类型的excel文件?我有一个,也许对你有用。

解决方案 »

  1.   

    <?php
    class Excel_XML
    {
        private $header = "<?xml version=\"1.0\" encoding=\"gb2312\"?\>
    <Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\"
     xmlns:x=\"urn:schemas-microsoft-com:office:excel\"
     xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\"
     xmlns:html=\"http://www.w3.org/TR/REC-html40\">";    private $footer = "</Workbook>";
        private $lines = array ();
        private $worksheet_title = "Table1";    private function addRow ($array)
        {
            $cells = "";
            foreach ($array as $k => $v):            $cells .= "<Cell><Data ss:Type=\"String\">" . $v . "</Data></Cell>\n";         endforeach;
            $this->lines[] = "<Row>\n" . $cells . "</Row>\n";    }    public function addArray ($array)
        {        // run through the array and add them into rows
            foreach ($array as $k => $v):
                $this->addRow ($v);
            endforeach;    }    public function setWorksheetTitle ($title)
        {        // strip out special chars first
            $title = preg_replace ("/[\\\|:|\/|\?|\*|\[|\]]/", "", $title);        // now cut it to the allowed length
            $title = substr ($title, 0, 31);        // set title
            $this->worksheet_title = $title;    }    function generateXML ($filename)
        {        // deliver header (as recommended in php manual)
            header("Content-Type: application/vnd.ms-excel; charset=gb2312");
            header("Content-Disposition: inline; filename=\"" . $filename . ".xls\"");        // print out document to the browser
            // need to use stripslashes for the damn ">"
            echo stripslashes ($this->header);
            echo "\n<Worksheet ss:Name=\"" . $this->worksheet_title . "\">\n<Table>\n";
            echo "<Column ss:Index=\"1\" ss:AutoFitWidth=\"0\" ss:Width=\"110\"/>\n";
            echo implode ("\n", $this->lines);
            echo "</Table>\n</Worksheet>\n";
            echo $this->footer;    }}
    ?>//调用
    require ("class-excel-xml.inc.php");$xls = new Excel_XML();/*
    $_docTitle = array (
        1 => array (
        "编号", "姓名","性别", "单位", "分站点", 
        "必修课版次", "总学时", "作业完成数", "作业合格数", 
        "作业总评", "论文题目", "论文成绩", "学习总评", "注册情况","注册时间")
        );
    */$xls->addArray($_docTitle);
    $xls->addArray($_userdataimportdb);
    $xls->generateXML($setname);
    //*/