1. 云栖社区>
  2. PHP教程>
  3. 正文

用Simple Excel导出xls实现方法

作者:用户 来源:互联网 时间:2017-12-01 17:09:38

方法

用Simple Excel导出xls实现方法 - 摘要: 本文讲的是用Simple Excel导出xls实现方法,因为前几天写了篇文章,用php-excel-reader类导入excel内容,顺便说些excel导出问题,我用的是simple excel,一个很简单的导出xls类,特好用。 simple excel源码如下: <?php /** *

因为前几天写了篇文章,用php-excel-reader类导入excel内容,顺便说些excel导出问题,我用的是simple excel,一个很简单的导出xls类,特好用。
simple excel源码如下:
<?php /** * Simple excel generating from PHP5 * * @package Utilities * @license http://www.opensource.org/licenses/mit-license.php * @author Oliver Schwarz <[email protected]> * @version 1.0 */ class Excel_Xml { private $header = "<?xml version=/"1.0/" encoding=/"%s/"?/>/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/">"; private $footer = "</Workbook>"; private $lines = array(); private $sEncoding; private $bConvertTypes; private $sWorksheetTitle; public function __construct($sEncoding = 'UTF-8', $bConvertTypes = false, $sWorksheetTitle = 'Table1') { $this->bConvertTypes = $bConvertTypes; $this->setEncoding($sEncoding); $this->setWorksheetTitle($sWorksheetTitle); } public function setEncoding($sEncoding) { $this->sEncoding = $sEncoding; } public function setWorksheetTitle ($title) { $title = preg_replace ("/[///|:|//|/?|/*|/[|/]]/", "", $title); $title = substr ($title, 0, 31); $this->sWorksheetTitle = $title; } private function addRow ($array) { $cells = ""; foreach ($array as $k => $v): $type = 'String'; if ($this->bConvertTypes === true && is_numeric($v)): $type = 'Number'; endif; $v = htmlentities($v, ENT_COMPAT, $this->sEncoding); $cells .= "<Cell><Data ss:Type=/"$type/">" . $v . "</Data></Cell>/n"; endforeach; $this->lines[] = "<Row>/n" . $cells . "</Row>/n"; } public function addArray ($array) { foreach ($array as $k => $v) $this->addRow ($v); } public function generateXML ($filename = 'excel-export') { $filename = preg_replace('/[^aA-zZ0-9/_/-]/', '', $filename); header("Content-Type: application/vnd.ms-excel; charset=" . $this->sEncoding); header("Content-Disposition: inline; filename=/"" . $filename . ".xls/""); echo stripslashes (sprintf($this->header, $this->sEncoding)); echo "/n<Worksheet ss:Name=/"" . $this->sWorksheetTitle . "/">/n<Table>/n"; foreach ($this->lines as $line) echo $line; echo "</Table>/n</Worksheet>/n"; echo $this->footer; } } ?>

使用php案例如下:
<?php /** * @author mckee * @blog www.phpddt.com */ require_once 'excel.class.php'; $xls = new Excel_Xml('UTF-8',false,'测试'); $data = array( 1 => array('名称','地址'), 2 => array('php点点通','www.phpddt.com'), 3 => array('百度','www.baidu.com') ); $xls->addArray($data); $xls->generateXML('name4test'); ?>

导出结果如下图:

用Simple Excel导出xls实现方法

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索方法 ,以便于您获取更多的相关知识。