用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 输出双引号&quot;与单引号'的方法
May 09 PHP
php数组对百万数据进行排除重复数据的实现代码
Jun 08 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
May 07 PHP
本地机apache配置基于域名的虚拟主机详解
Aug 10 PHP
php实现文件下载代码分享
Aug 19 PHP
PHP输出一个等腰三角形的方法
May 12 PHP
php数组索引与键值操作技巧实例分析
Jun 24 PHP
php gd等比例缩放压缩图片函数
Jun 12 PHP
PHP中如何判断exec函数执行成功?
Aug 04 PHP
PHP AjaxForm提交图片上传并显示图片源码
Nov 29 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
Jun 27 PHP
基于PHP实现生成随机水印图片
Dec 09 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
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
php防止网站被攻击的应急代码
2015/10/21 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
摘自启点的main.js
2008/04/20 Javascript
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
重载toString实现JS HashMap分析
2011/03/13 Javascript
JavaScript 语言基础知识点总结(思维导图)
2013/11/10 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
javascript:json数据的页面绑定示例代码
2014/01/26 Javascript
原生JavaScript+LESS实现瀑布流
2014/12/12 Javascript
基于jquery实现放大镜效果
2015/08/17 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
ES2015 Symbol 一种绝不重复的值
2016/12/25 Javascript
JavaScript中Object值合并方法详解
2017/12/22 Javascript
搭建vue开发环境
2018/07/19 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
解决Layui数据表格中checkbox位置不居中的方法
2018/08/15 Javascript
详解Vue用cmd创建项目
2019/02/12 Javascript
vue 开发之路由配置方法详解
2019/12/02 Javascript
Nuxt的路由配置和参数传递方式
2020/11/06 Javascript
Python中关于Sequence切片的下标问题详解
2017/06/15 Python
python编程线性回归代码示例
2017/12/07 Python
numpy中的delete删除数组整行和整列的实例
2018/05/09 Python
python实现简易数码时钟
2021/02/19 Python
python元组和字典的内建函数实例详解
2019/10/22 Python
Python安装依赖(包)模块方法详解
2020/02/14 Python
Python判断字符串是否为空和null方法实例
2020/04/26 Python
浅谈Python爬虫原理与数据抓取
2020/07/21 Python
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
办公室保洁员岗位职责
2013/12/02 职场文书
日语专业毕业生求职信
2013/12/04 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
客房领班岗位职责
2015/02/11 职场文书
销售内勤岗位职责范本
2015/04/13 职场文书
Pycharm远程调试和MySQL数据库授权问题
2022/03/18 MySQL