用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重定向的3种方式
Mar 07 PHP
joomla jce editor 解决上传中文名文件失败问题
Jun 09 PHP
PHP面向对象程序设计之接口用法
Aug 20 PHP
php实现的Cookies操作类实例
Sep 24 PHP
详细解读PHP的Yii框架中登陆功能的实现
Aug 21 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
Dec 22 PHP
thinkPHP查询方式小结
Jan 09 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
Nov 17 PHP
PHP实现留言板功能的详细代码
Mar 25 PHP
Laravel 5.4.36中session没有保存成功问题的解决
Feb 19 PHP
thinkphp3.2同时连接两个数据库的简单方法
Aug 13 PHP
PHP如何将图片文件上传到另外一台服务器上
Aug 26 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数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
2011/10/31 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
php生成微信红包数组的方法
2019/09/05 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
在IE模态窗口中自由查看HTML源码的方法
2007/03/08 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
2016/09/18 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
2016/11/01 Javascript
实例讲解DataTables固定表格宽度(设置横向滚动条)
2017/07/11 Javascript
在Vue中使用echarts的方法
2018/02/05 Javascript
webpack4.x打包过程详解
2018/07/18 Javascript
layui结合form,table的全选、反选v1.0示例讲解
2018/08/15 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
2018/11/08 Javascript
微信小程序云开发如何使用npm安装依赖
2019/05/18 Javascript
node 解析图片二维码的内容代码实例
2019/09/11 Javascript
关于vue-cli3打包代码后白屏的解决方案
2020/09/02 Javascript
python pickle 和 shelve模块的用法
2013/09/16 Python
Python中遇到的小问题及解决方法汇总
2017/01/11 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
python实现决策树、随机森林的简单原理
2018/03/26 Python
Python爬虫使用脚本登录Github并查看信息
2018/07/16 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
2019/01/29 Python
python分数表示方式和写法
2019/06/26 Python
Python二元赋值实用技巧解析
2019/10/25 Python
python Manager 之dict KeyError问题的解决
2019/12/21 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
HTML5 创建canvas元素示例代码
2014/06/04 HTML / CSS
人力资源行政经理自我评价
2013/10/23 职场文书
大学自主招生自荐信
2013/12/16 职场文书
致标枪运动员广播稿
2014/02/06 职场文书
研究生求职自荐书
2014/06/23 职场文书
建筑工程造价专业自荐信
2014/07/08 职场文书
市场营销专业毕业生求职信
2014/07/21 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书