用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 相关文章推荐
对squid中refresh_pattern的一些理解和建议
Apr 17 PHP
PHP 图像尺寸调整代码
May 26 PHP
Windows下XDebug 手工配置与使用说明
Jul 11 PHP
查找mysql字段中固定字符串并替换的几个方法
Sep 23 PHP
PHP加Nginx实现动态裁剪图片方案
Mar 10 PHP
PHP使用range协议实现输出文件断点续传代码实例
Jul 04 PHP
Smarty中常用变量操作符汇总
Oct 27 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
Feb 15 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
PHP递归的三种常用方式
Feb 28 PHP
PHP使用ActiveMQ实现消息队列的方法详解
May 31 PHP
laravel withCount 统计关联数量的方法
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
亚洲咖啡有什么?亚洲咖啡产地介绍 亚洲咖啡有什么特点?
2021/03/05 新手入门
php使用curl模拟登录后采集页面的例子
2013/11/04 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
2014/09/27 PHP
php连接odbc数据源并保存与查询数据的方法
2014/12/24 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
区分JS中的undefined,null,&quot;&quot;,0和false
2007/03/08 Javascript
IE下js调试工具Companion.JS
2010/10/15 Javascript
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
Javascript中string转date示例代码
2013/11/01 Javascript
两个select多选模式的选项相互移动(示例代码)
2014/01/11 Javascript
js点击事件链接的问题解决
2014/04/25 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
jQuery UI Bootstrap是什么?
2016/06/17 Javascript
window.open不被拦截的简单实现代码(推荐)
2016/08/04 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
NodeJS配置HTTPS服务实例分享
2017/02/19 NodeJs
jQuery中的deferred使用方法
2017/03/27 jQuery
写一个移动端惯性滑动&amp;回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
js尾调用优化的实现
2019/05/23 Javascript
JavaScript中变量提升机制示例详解
2019/12/27 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
解决python给列表里添加字典时被最后一个覆盖的问题
2019/01/21 Python
在SQLite-Python中实现返回、查询中文字段的方法
2019/07/17 Python
使用python处理题库表格并转化为word形式的实现
2020/04/14 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
高二美术教学反思
2014/01/14 职场文书
仓库组长岗位职责
2014/01/29 职场文书
材料物理专业求职信
2014/09/01 职场文书
我的大学四年规划书范文2014
2014/09/26 职场文书
学生保证书
2015/01/16 职场文书
超市督导岗位职责
2015/04/10 职场文书
起诉书范文
2015/05/20 职场文书