用Simple Excel导出xls实现方法


Posted in PHP onDecember 06, 2012

因为前几天写了篇文章,用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 <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\">"; 
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实现方法
PHP 相关文章推荐
用户的详细注册和判断
Oct 09 PHP
用PHP实现Ftp用户的在线管理的代码
Mar 06 PHP
php 将bmp图片转为jpg等其他任意格式的图片
Jun 29 PHP
php接口和抽象类使用示例详解
Mar 02 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
Apr 14 PHP
php中chdir()函数用法实例
Nov 13 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
Nov 29 PHP
PHP中字符安全过滤函数使用小结
Feb 25 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
PHP文件下载实例代码浅析
Aug 17 PHP
php session的应用详细介绍
Mar 22 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
php读取EXCEL文件 php excelreader读取excel文件
Dec 06 #PHP
php excel reader读取excel内容存入数据库实现代码
Dec 06 #PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
Dec 06 #PHP
php单例模式实现(对象只被创建一次)
Dec 05 #PHP
利用php实现禁用IE和火狐的缓存问题
Dec 03 #PHP
php自动给文章加关键词链接的函数代码
Nov 29 #PHP
PHP文章按日期(月日)SQL归档语句
Nov 29 #PHP
You might like
PHP+ACCESS 文章管理程序代码
2010/06/21 PHP
PHP 显示客户端IP与服务器IP的代码
2010/10/12 PHP
php获取本地图片文件并生成xml文件输出具体思路
2013/04/27 PHP
php curl的深入解析
2013/06/02 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
2014/07/28 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
PHP常用的类封装小结【4个工具类】
2019/06/28 PHP
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
国外Lightbox v2.03.3 最新版 下载
2007/10/17 Javascript
JavaScript中setMonth()方法的使用详解
2015/06/11 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
微信小程序 引用其他js文件实现代码
2017/02/22 Javascript
Bootstrap fileinput文件上传组件使用详解
2017/06/06 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
JS module的导出和导入的实现代码
2019/02/25 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
js实现文字头像的生成代码
2020/03/07 Javascript
详解JavaScript中分解数字的三种方法
2021/01/05 Javascript
python中requests模块的使用方法
2015/04/08 Python
Python 和 JS 有哪些相同之处
2017/11/23 Python
Python实现的求解最大公约数算法示例
2018/05/03 Python
详解python中Numpy的属性与创建矩阵
2018/09/10 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
css3圆角样式分享自定义按钮样式
2013/12/27 HTML / CSS
德国骆驼商店:ActiveFashionWorld
2017/11/18 全球购物
护士找工作求职信
2014/07/02 职场文书
主题党日活动总结
2014/07/08 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
关于读书的演讲稿400字
2014/08/27 职场文书
技术员岗位职责
2015/02/04 职场文书
导游词之湖北梁子湖
2019/11/07 职场文书
go 实现简易端口扫描的示例
2021/05/22 Golang
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle