用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的特殊设置
Oct 09 PHP
php面向对象全攻略 (十七) 自动加载类
Sep 30 PHP
PHP 变量的定义方法
Jan 26 PHP
PHP得到mssql的存储过程的输出参数功能实现
Nov 23 PHP
Yii PHP Framework实用入门教程(详细介绍)
Jun 18 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
Jun 25 PHP
十幅图告诉你什么是PHP引用
Feb 22 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
Nov 05 PHP
PHP树-不需要递归的实现方法
Jun 21 PHP
PHP手机号中间四位用星号*代替显示的实例
Jun 02 PHP
php微信开发之图片回复功能
Jun 14 PHP
php+laravel依赖注入知识点总结
Nov 04 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的PDO常用类库实例分析
2016/04/07 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
JS Excel读取和写入操作(模板操作)实现代码
2010/04/11 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
JavaScript中的函数嵌套使用
2015/06/04 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
详解Bootstrap按钮
2016/01/04 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
canvas实现粒子时钟效果
2017/02/06 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
2017/02/21 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
深入理解Vue.js源码之事件机制
2017/09/27 Javascript
详解Nodejs 通过 fs.createWriteStream 保存文件
2017/10/10 NodeJs
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
vue基于element的区间选择组件
2018/09/07 Javascript
基于vue.js组件实现分页效果
2018/12/29 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
2017/10/01 Python
python快速建立超简单的web服务器的实现方法
2018/02/17 Python
python numpy生成等差数列、等比数列的实例
2020/02/25 Python
详解HTML5中的标签
2015/06/19 HTML / CSS
加拿大女装网上购物:Reitmans
2016/10/20 全球购物
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
亚马逊巴西站:Amazon.com.br
2019/09/22 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
商务日语专业自荐信
2014/04/17 职场文书
超市开业庆典活动策划方案
2014/09/15 职场文书
员工试用期转正自我评价
2015/03/10 职场文书
特种设备安全管理制度
2015/08/06 职场文书
Python list列表删除元素的4种方法
2021/11/01 Python
MySQL窗口函数的具体使用
2021/11/17 MySQL
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers