php导出.xls代码
在实际工作过程中需要大量导出数据,但是在平时都是用phpExecl工具来做。就会有一个问题就是如果数据量过大就会超时,所以在不限制execl后缀名格式下,可以使用浏览器在自动生成。也就是说。把所要导出的数据按照浏览器要求的格式,全部给浏览器。浏览器自动导出代码如下很实用
点击查看代码
<?php
class WorkSheet
{
    private $lines = array();
    public $sWorksheetTitle;
    public function __construct($sWorksheetTitle)
    {
        $this->setWorksheetTitle($sWorksheetTitle);
    }
    public function setWorksheetTitle ($title)
    {
        $title = preg_replace ("/[\\\¦:¦\/¦\?¦\*¦\[¦\]]/", "", $title);
        $title = substr ($title, 0, 31);
        $this->sWorksheetTitle = $title;
    }
    public function addRow ($array)
    {
        $cells = "";
        foreach ($array as $k => $v){
//                  $v=mb_convert_encoding("$v", "UTF-8", "GBK");
           //如果数据是数值型的,则将单元格格式设置为Number,避免在excel文件中转换格式
            if (is_numeric($v)) {
                $v = (string)$v;
                $type="Number";
            }else
            {
                $v=trim($v,"'");
                $type = "String";
            }
            $v = htmlentities($v, ENT_COMPAT, "UTF-8");
            $cells .= "<Cell><Data ss:Type=\"$type\">" . $v . "</Data></Cell>\n";
        }
        $this->lines[] = "<Row>\n" . $cells . "</Row>\n";
    }
    public function printline()
    {
        foreach ($this->lines as $line)
        {
            echo $line;
        }
    }
}
class Excel
{
    public $worksheets = array();
    public function __construct($sWorksheetTitle)
    {
        $this->addsheet($sWorksheetTitle);
    }
    public function addsheet($title)
    {
        $this->worksheets[$title] = new WorkSheet($title);
    }
    public function generate ($filename = 'excel-export')
    {
//      $filename=mb_convert_encoding("$filename", "UTF-8", "GBK");
//         $filename = preg_replace('/[^aA-zZ0-9\_\-]/', '', $filename);
        header("Content-Type: application/vnd.ms-excel; charset=UTF-8");
        header("Content-Disposition: inline; filename=\"" . $filename . ".xls\"");
        echo stripslashes("<?xml version=\"1.0\" encoding=\"UTF-8\"?\>\n<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\">");
        foreach ($this->worksheets as $worksheet)
        {
            echo "\n<Worksheet ss:Name=\"" . $worksheet->sWorksheetTitle . "\">\n<Table>\n";
            $worksheet->printline();
            echo "</Table>\n</Worksheet>\n";
        }
        echo "</Workbook>";
    }
}
?>
 
                    
                     
                    
                 
                    
                 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号