加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

用Simple Excel导出xls实现方法

发布时间:2020-12-13 06:12:35 所属栏目:PHP教程 来源:网络整理
导读:因为前几天写了篇文章,用php-excel-reader类导入excel内容,顺便说些excel导出问题,我用的是simple excel,一个很简单的导出xls类,特好用! simple excel源码如下: div class="codetitle" a style="CURSOR: pointer" data="49309" class="copybut" id="c

因为前几天写了篇文章,用php-excel-reader类导入excel内容,顺便说些excel导出问题,我用的是simple excel,一个很简单的导出xls类,特好用!
simple excel源码如下:
<div class="codetitle"><a style="CURSOR: pointer" data="49309" class="copybut" id="copybut49309" onclick="doCopy('code49309')"> 代码如下:<div class="codebody" id="code49309">
<?php
/
Simple excel generating from PHP5

@package Utilities
@license http://www.opensource.org/licenses/mit-license.php
@author Oliver Schwarz oliver.schwarz@gmail.com
@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"&gt;";
private $footer = "";
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,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 .= "<Data ss:Type="$type">" . $v . "n";
endforeach;
$this->lines[] = "n" . $cells . "n";
}
public function addArray ($array)
{
foreach ($array as $k => $v)
$this->addRow ($v);
}
public function generateXML ($filename = 'excel-export')
{
$filename = pregreplace('/[^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

n";
foreach ($this->lines as $line)
echo $line;
echo "
nn";
echo $this->footer;
}
}
?>

使用php案例如下:
<div class="codetitle"><a style="CURSOR: pointer" data="41023" class="copybut" id="copybut41023" onclick="doCopy('code41023')"> 代码如下:<div class="codebody" id="code41023">
<?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'); ?>

导出结果如下图:
<IMG title="用Simple Excel导出xls" style="DISPLAY: block; MARGIN-LEFT: auto; MARGIN-RIGHT: auto" alt="用Simple Excel导出xls" src="https://files.52php.cn/file_images/article/201212/2012120611154224.png"&gt;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读