用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 相关文章推荐
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
Apr 24 PHP
PHP 命令行参数详解及应用
May 18 PHP
用PHP读取超大文件的实例代码
Apr 01 PHP
smarty简单分页的实现方法
Oct 27 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
Aug 17 PHP
PHP获取网页所有连接的方法(附demo源码下载)
Mar 30 PHP
PHP实现上一篇下一篇的方法实例总结
Sep 22 PHP
PHP链表操作简单示例
Oct 15 PHP
PHP下 Mongodb 连接远程数据库的实例代码
Aug 30 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
Apr 20 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
May 11 PHP
php微信开发之关注事件
Jun 14 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
用Socket发送电子邮件
2006/10/09 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
老生常谈PHP面向对象之标识映射
2017/06/21 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
2017/10/19 PHP
js对象的比较
2011/02/26 Javascript
vue快捷键与基础指令详解
2017/06/01 Javascript
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
vue+element 模态框表格形式的可编辑表单实现
2019/06/07 Javascript
javascript中的闭包概念与用法实践分析
2019/07/26 Javascript
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
node.JS路径解析之PATH模块使用方法详解
2020/02/06 Javascript
JS sort排序详细使用方法示例解析
2020/09/27 Javascript
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
Python中List.index()方法的使用教程
2015/05/20 Python
Python如何判断数独是否合法
2016/09/08 Python
windows及linux环境下永久修改pip镜像源的方法
2016/11/28 Python
python3实现全角和半角字符转换的方法示例
2017/09/21 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
python生成特定分布数的实例
2019/12/05 Python
python代码能做成软件吗
2020/07/24 Python
加拿大知名的国际儿童品牌:Hatley
2016/11/09 全球购物
阿迪达斯芬兰官方网站:adidas芬兰
2017/01/30 全球购物
英国最大的女士服装零售商:Bonmarché
2017/08/17 全球购物
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
俄罗斯童装网上商店:BebaKids
2020/06/06 全球购物
体育教育个人自荐信范文
2013/12/01 职场文书
高中学生评语大全
2014/04/25 职场文书
学生保证书范文
2014/04/28 职场文书
庆祝新中国成立65周年“向国旗敬礼”网上签名寄语
2014/09/27 职场文书
上市公司董事长岗位职责
2015/04/16 职场文书
送给自己的励志语句:要安静的优秀,悄无声息的坚强
2019/11/26 职场文书
python基础详解之if循环语句
2021/04/24 Python
Win11安装升级时提示“该电脑必须支持安全启动”
2022/04/19 数码科技