用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写的采集程序
Mar 16 PHP
解析PHP获取当前网址及域名的实现代码
Jun 23 PHP
php sybase_fetch_array使用方法
Apr 15 PHP
php单态设计模式(单例模式)实例
Nov 18 PHP
thinkphp中ajax与php响应过程详解
Dec 08 PHP
CodeIgniter记录错误日志的方法全面总结
May 17 PHP
详解PHP中websocket的使用方法
Sep 15 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
Jun 01 PHP
Laravel框架在本地虚拟机快速安装的方法详解
Jun 11 PHP
php面试中关于面向对象的相关问题
Feb 13 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
Mar 21 PHP
PHP的Trait机制原理与用法分析
Oct 18 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中session_unset与session_destroy的区别分析
2011/06/16 PHP
如何用C语言编写PHP扩展的详解
2013/06/13 PHP
thinkPHP简单实现多个子查询语句的方法
2016/12/05 PHP
利用cookie记住背景颜色示例代码
2013/11/04 Javascript
jquery实现手风琴效果实例代码
2013/11/15 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
javascript跨域原因以及解决方案分享
2015/04/08 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
bootstrap输入框组使用方法
2017/02/07 Javascript
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
vscode 配置vue+vetur+eslint+prettier自动格式化功能
2020/03/23 Javascript
vue中是怎样监听数组变化的
2020/10/24 Javascript
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
简洁的十分钟Python入门教程
2015/04/03 Python
Python模拟登录验证码(代码简单)
2016/02/06 Python
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
Tensorflow实现卷积神经网络的详细代码
2018/05/24 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
2018/08/03 Python
在python中pandas读文件,有中文字符的方法
2018/12/12 Python
详解pandas的外部数据导入与常用方法
2019/05/01 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
自主招生自荐信指南
2014/02/04 职场文书
技校毕业生个人学习的自我评价
2014/02/21 职场文书
教学评估实施方案
2014/03/16 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
优秀教育工作者事迹材料
2014/12/24 职场文书
护士先进个人总结
2015/02/13 职场文书
MySQL系列之十一 日志记录
2021/07/02 MySQL