首页 > 编程 > PHP > 正文

PHP生成EXCEL,支持多个SHEET

2019-11-08 03:10:21
字体:
来源:转载
供稿:网友

php-Excel.class.php::

<?phpclass 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){                $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 = 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>";    }}?>使用方法:

<?phprequire 'php-excel.class.php';$xls = new Excel('Sheet'); //构造函数,参数为第一个sheet名称$xls->worksheets['Sheet']->addRow(array("1","2","3")); //添加一行,数据为1,2,3$xls->addsheet('Test');//新建一个sheet,参数为sheet名称$xls->worksheets['Test']->addRow(array("3","2","3"));//在第二个sheet添加一行$xls->generate('my-test');//下载excel,参数为文件名?>转自:https://leo108.com/pid-1464.asp


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表