用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 相关文章推荐
PHP4实际应用经验篇(2)
Oct 09 PHP
php生成EXCEL的东东
Oct 09 PHP
php图片上传存储源码并且可以预览
Aug 26 PHP
用Simple Excel导出xls实现方法
Dec 06 PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 PHP
PHP自定义函数实现格式化秒的方法
Sep 14 PHP
php分页查询的简单实现代码
Mar 14 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 PHP
php进程daemon化的正确实现方法
Sep 06 PHP
Centos7 Yum安装PHP7.2流程教程详解
Jul 02 PHP
php下的原生ajax请求用法实例分析
Feb 28 PHP
PHP number_format函数原理及实例解析
Jul 14 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
PHP4实际应用经验篇(4)
2006/10/09 PHP
非常好的php目录导航文件代码
2006/10/09 PHP
ADODB类使用
2006/11/25 PHP
PHP简单实现“相关文章推荐”功能的方法
2014/07/19 PHP
详谈PHP文件目录基础操作
2014/11/11 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
不用MOUSEMOVE也能滑动啊
2007/05/23 Javascript
IE8 中使用加速器(Activities)
2010/05/14 Javascript
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
JS定时器实例详细分析
2013/10/11 Javascript
Javascript使用post方法提交数据实例
2015/08/03 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
2016/08/10 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
2016/08/29 Javascript
微信小程序  wx.request合法域名配置详解
2016/11/23 Javascript
深入理解JavaScript中的预解析
2017/01/04 Javascript
AngularJS动态绑定ng-options的ng-model实例代码
2017/06/21 Javascript
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
js实现星星海特效的示例
2020/09/28 Javascript
vue项目查看vue版本及cli版本的实现方式
2020/10/24 Javascript
Python3写入文件常用方法实例分析
2015/05/22 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
2017/06/23 Python
mac系统安装Python3初体验
2018/01/02 Python
django项目登录中使用图片验证码的实现方法
2019/08/15 Python
解决Python中报错TypeError: must be str, not bytes问题
2020/04/07 Python
python实现从ftp上下载文件的实例方法
2020/07/19 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
CSS教程:CSS3圆角属性
2009/04/02 HTML / CSS
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
Gap加拿大官网:Gap Canada
2017/08/24 全球购物
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
求职信范文英文版
2014/01/05 职场文书
iPhone13将有八大升级
2021/04/15 数码科技