用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编程中字符串处理的5个技巧小结
Nov 13 PHP
PHP令牌 Token改进版
Jul 18 PHP
php 需要掌握的东西 不做浮躁的人
Dec 28 PHP
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
Dec 05 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
Sep 12 PHP
php生成固定长度纯数字编码的方法
Jul 09 PHP
PHP统计当前在线用户数实例讲解
Oct 21 PHP
PHP实现多关键字加亮功能
Oct 21 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
May 31 PHP
php如何计算两坐标点之间的距离
Dec 29 PHP
PHP实现微信小程序用户授权的工具类示例
Mar 05 PHP
win10下 php安装seaslog扩展的详细步骤
Dec 04 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,不用COM,生成excel文件
2006/10/09 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
使用XHProf查找PHP性能瓶颈的实例
2017/12/13 PHP
php服务器的系统详解
2019/10/12 PHP
JS网页图片按比例自适应缩放实现方法
2014/01/15 Javascript
jquery仿QQ登录账号选择下拉框效果
2016/03/22 Javascript
深入理解JavaScript单体内置对象
2016/06/06 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
2016/06/22 Javascript
利用css+原生js制作简单的钟表
2020/04/07 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
2016/09/05 Javascript
js改变html的原有内容实现方法
2016/10/05 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
JavaScript下拉菜单功能实例代码
2017/03/01 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
Bootstrap实现下拉菜单多级联动
2017/11/23 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
jquery实现吸顶导航效果
2020/01/08 jQuery
jQuery实现飞机大战小游戏
2020/07/05 jQuery
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
postman传递当前时间戳实例详解
2019/09/14 Python
Python中实现输入一个整数的案例
2020/05/03 Python
CSS3打造百度贴吧的3D翻牌效果示例
2017/01/04 HTML / CSS
HTML5中的Web Notification桌面右下角通知功能的实现
2018/04/19 HTML / CSS
Woods官网:加拿大最古老、最受尊敬的户外品牌之一
2020/09/12 全球购物
综合办公室主任职责
2013/12/16 职场文书
大三学习计划书范文
2014/05/02 职场文书
学校安全生产承诺书
2014/05/23 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
四风剖析查摆对照检查材料思想汇报
2014/09/24 职场文书
地方白酒代理协议书
2014/10/25 职场文书
辞职信如何写
2015/02/27 职场文书
办公室日常管理制度
2015/08/04 职场文书
Mysql忘记密码解决方法
2022/02/12 MySQL
Spring依赖注入多种类型数据的示例代码
2022/03/31 Java/Android