用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 相关文章推荐
php设计模式 Bridge (桥接模式)
Jun 26 PHP
探讨多键值cookie(php中cookie存取数组)的详解
Jun 06 PHP
PHP与Java进行通信的实现方法
Oct 21 PHP
ThinkPHP模板判断输出Present标签用法详解
Jun 30 PHP
php操作xml入门之cdata区段
Jan 23 PHP
php生成圆角图片的方法
Apr 07 PHP
PHP也能干大事 随机函数
Apr 14 PHP
Session 失效的原因汇总及解决丢失办法
Sep 30 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
Dec 05 PHP
php自定义时间转换函数示例
Dec 07 PHP
使用PHP访问RabbitMQ消息队列的方法示例
Jun 06 PHP
Laravel 在views中加载公共页面的实现代码
Oct 22 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中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
php随机抽奖实例分析
2015/03/04 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
JS读取cookies信息(记录用户名)
2012/01/10 Javascript
jquery事件与函数的使用介绍
2013/09/29 Javascript
js中同步与异步处理的方法和区别总结
2013/12/25 Javascript
jquery 中ajax执行的优先级
2015/06/22 Javascript
第四章之BootStrap表单与图片
2016/04/25 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
vue.js+boostrap项目实践(案例详解)
2016/09/21 Javascript
鼠标点击input,显示瞬间的边框颜色,对之修改与隐藏实例
2016/12/26 Javascript
vue模板语法-插值详解
2017/03/06 Javascript
vue-cli开发环境实现跨域请求的方法
2018/04/07 Javascript
vue自动路由-单页面项目(非build时构建)
2019/04/30 Javascript
如何给element添加一个抽屉组件的方法步骤
2019/07/14 Javascript
详解Nuxt内导航栏的两种实现方式
2020/04/16 Javascript
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
详解Python装饰器由浅入深
2016/12/09 Python
python实现的生成word文档功能示例
2019/08/23 Python
Python类反射机制使用实例解析
2019/12/30 Python
python如何查看网页代码
2020/06/07 Python
Python JSON常用编解码方法代码实例
2020/09/05 Python
一加手机美国官方网站:OnePlus美国
2019/09/19 全球购物
日本AOKI官方商城:AOKI西装
2020/06/11 全球购物
一年级班主任寄语
2014/01/19 职场文书
《望洞庭》教学反思
2014/02/16 职场文书
给小学生的新年寄语
2014/04/04 职场文书
离婚财产分隔协议书
2014/10/23 职场文书
股权转让协议范本
2014/12/07 职场文书
2015年监理工作总结范文
2015/04/07 职场文书
特此通知格式
2015/04/27 职场文书
病假证明模板
2015/06/19 职场文书
2015选调生工作总结
2015/07/24 职场文书
初中语文教学随笔
2015/08/15 职场文书
SQL Server 数据库实验课第五周——常用查询条件
2021/04/05 SQL Server