| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | <?phpnamespace tools;/** * @copyright (c) 2014 aircheng * @file report.php * @brief 导出excel类库 * @author dabao * @date 2014/11/28 22:09:43 * @version 1.0.0 * @update 4.6 * @date 2016/9/15 23:30:28 * @author nswe * @content 重构了写入方式和方法 */class Report{    //文件名    private $fileName = 'user';    //数据内容    private $_data    = "";    //构造函数    public function __construct($fileName = '')    {        $this->setFileName($fileName);    }    //设置要导出的文件名    public function setFileName($fileName)    {        $this->fileName = $fileName;    }    /**     * @brief 写入内容操作,每次存入一行     * @param $data array 一维数组     */    public function setTitle($data = array())    {        array_walk($data,function(&$val,$key)        {            $val = "<th style='text-align:center;background-color:green;color:#fff;font-size:12px;vnd.ms-excel.numberformat:@'>".$val."</th>";        });        $this->_data .= "<tr>".join($data)."</tr>";    }    /**     * @brief 写入标题操作     * @param $data array  数据     */    public function setData($data = array())    {        array_walk($data,function(&$val,$key)        {            $val = "<td style='text-align:center;font-size:12px;vnd.ms-excel.numberformat:@'>".$val."</td>";        });        $this->_data .= "<tr>".join($data)."</tr>";    }    //开始下载    public function toDownload($data = '')    {        // Redirect output to a client’s web browser (Excel5)        header('Content-Type: application/vnd.ms-excel');        header('Content-Disposition: attachment;filename='.$this->fileName.'_'.date('Y-m-d').'.xls');        header('Cache-Control: max-age=0');        // If you're serving to IE 9, then the following may be needed        header('Cache-Control: max-age=1');        // If you're serving to IE over SSL, then the following may be needed        header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past        header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified        header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1        header ('Pragma: public'); // HTTP/1.0        $result = $data ? $data : "<table border='1'>".$this->_data."</table>";        echo <<< OEF<html>	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />	<body>	{$result}	</body></html>OEF;    }}
 |