用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的类 功能齐全的发送邮件类
Oct 09 PHP
php foreach 参数强制类型转换的问题
Dec 10 PHP
php模板函数 正则实现代码
Oct 15 PHP
解析PHP将对象转换成数组的方法(兼容多维数组类型)
Jun 21 PHP
ThinkPHP表单自动验证实例
Oct 13 PHP
PHP模板解析类实例
Jul 09 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
Jul 31 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
Dec 28 PHP
PHPExcel导出2003和2007的excel文档功能示例
Jan 04 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
Feb 17 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
Apr 26 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
Oct 10 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
全国FM电台频率大全 - 27 陕西省
2020/03/11 无线电
一个oracle+PHP的查询的例子
2006/10/09 PHP
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
php7性能提升的原因详解
2019/10/13 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
我的Node.js学习之路(二)NPM模块管理
2014/07/06 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
Jqgrid之强大的表格插件应用
2015/12/02 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
vue router下的html5 history在iis服务器上的设置方法
2017/10/18 Javascript
微信小程序利用swiper+css实现购物车商品删除功能
2019/03/06 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
解决vue-router 二级导航默认选中某一选项的问题
2019/11/01 Javascript
浅谈vue的第一个commit分析
2020/06/08 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
npm全局环境变量配置详解
2020/12/15 Javascript
[26:24]完美副总裁、DOTA2负责人蔡玮专访:电竞如人生
2014/09/11 DOTA
[40:16]TFT vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
探究数组排序提升Python程序的循环的运行效率的原因
2015/04/01 Python
python中Apriori算法实现讲解
2017/12/10 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
Python dict的常用方法示例代码
2020/06/23 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
受希腊女神灵感的晚礼服、鸡尾酒礼服和婚纱:THEIA
2018/04/15 全球购物
初中生期末考试的自我评价
2013/12/17 职场文书
教师年度考核自我鉴定
2014/01/19 职场文书
创业者是否需要商业计划书?
2014/02/07 职场文书
保险内勤岗位职责
2014/04/05 职场文书
2015新学期开学寄语
2015/02/26 职场文书
大学生实习介绍信
2015/05/05 职场文书
vue 实现上传组件
2021/05/31 Vue.js