用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 相关文章推荐
一个简单的域名注册情况查询程序
Oct 09 PHP
PHP中防止SQL注入实现代码
Feb 19 PHP
PHP flock 文件锁详细介绍
Dec 29 PHP
php在window iis的莫名问题的测试方法
May 14 PHP
PHP截断标题且兼容utf8和gb2312编码
Sep 22 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
PHP远程采集图片详细教程
Jul 01 PHP
php实现从上传文件创建缩略图的方法
Apr 02 PHP
php函数连续调用实例分析
Jul 30 PHP
JavaScript与HTML结合的基本使用方法整理
Oct 12 PHP
Zend Framework框架Smarty扩展实现方法
Mar 22 PHP
PHP基于递归实现的约瑟夫环算法示例
Aug 27 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的静态成员函数效率更高的原因
2014/06/13 PHP
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
获取内联和链接中的样式(js代码)
2013/04/11 Javascript
使用jQuery同时控制四张图片的伸缩实现代码
2013/04/19 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
2016/06/20 Javascript
JavaScript中数据类型转换总结
2016/12/25 Javascript
简述vue中的config配置
2018/01/23 Javascript
改变vue请求过来的数据中的某一项值的方法(详解)
2018/03/08 Javascript
vue 修改 data 数据问题并实时显示的方法
2018/08/27 Javascript
iphone刘海屏页面适配方法
2019/05/07 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
vue Element左侧无限级菜单实现
2020/06/10 Javascript
vue项目,代码提交至码云,iconfont的用法说明
2020/07/30 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
[03:56]还原FTP电影首映式 DOTA2群星拼出遗迹世界
2014/03/26 DOTA
[29:16]完美世界DOTA2联赛决赛日 Inki vs LBZS 第三场 11.08
2020/11/10 DOTA
Python实现保证只能运行一个脚本实例
2015/06/24 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
2020/02/27 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
pyinstaller打包找不到文件的问题解决
2020/04/15 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
Expedia挪威官网:酒店、机票和租车
2018/03/03 全球购物
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
内勤主管岗位职责
2014/04/03 职场文书
社区护士演讲稿
2014/08/27 职场文书
税务干部群众路线教育实践活动自我剖析材料
2014/09/21 职场文书
小学生2015教师节演讲稿
2015/03/19 职场文书
为什么阅读对所有年龄段的孩子都很重要?
2019/07/08 职场文书
python区块链实现简版工作量证明
2022/05/25 Python