phpexcel是一个强大的导入导出数据到excel表的插件类功能。本人在实际的项目开发中,会经常用到,下面为了以后方便使用,现将它封装成类。以下是在tp3.2的框架上使用。
(1)去phpexcel的官网下载phpexcel。
(2)在tp的核心库的第三库类vendor文件夹中新建一个excel的文件夹(自己定义合适文件夹名称就可以了),把下载的phpexcel文件夹和PHPExcel.php放在excel文件下。
(3)tp配置文件连接数据库就不说了
导出类:ArrayToExcel.class.php
<?php
/**
*导出excel表
*
*/
class ArraryToExcel{
/**
*@param data mysql中查询的二维数组数据
*@param path PHPExcel的目录路径
*@param colAttr 列属性
*@param rowAttr 行属性
*@param options 属性选项
*@param excelObj PHPExcel的对象
*@param valiData 列的有效性数据
*/
private $data;
private $path;
private $excelObj;
private $colAttr=array(
'A'=>array(//列的属性设置
'colName'=>'',//第一行的列名
'keyName'=>'',//每一列对应的赋值数组的key值
'width'=>'' //A列的宽度
),
//可以以 A B C D E F ....递增
/* 'B'=>array(//列的属性设置
'colName'=>'',//第一行的列名
'keyName'=>'',//每一列对应的赋值数组的key值
'width'=>'' //B列的宽度
),
'C'=>array(//列的属性设置
'colName'=>'',//第一行的列名
'keyName'=>'',//每一列对应的赋值数组的key值
'width'=>'' //C列的宽度
),
'D'=>array(//列的属性设置
'colName'=>'',//第一行的列名
'keyName'=>'',//每一列对应的赋值数组的key值
'width'=>'' //D列的宽
)
*/
);
private $rowAttr=array(
'firstRowHeight'=>'', //第一行的列名的高度
'height'=>'' //2-OO无从行的高度
);
private $options=array(
'excelname'=>'导出excel', //导出的excel的文件的名称
'sheettitle'=>'sheet1', //每个工作薄的标题
'creater'=>'', //创建者,
'lastmodified'=>'', //最近修改时间
'title'=>'office xls document',//当前活动的主题
'subject'=>'office xls document',
'description'=>'数据导出',
'keywords'=>'数据导出',
'category'=>''
);
private $validData=array();
/**
*创建实例自动执行函数
*/
public function __construct($data,$colAttr,$rowAttr,$options,$validData){
/**
*导入文件的位置一定要准确,本人是把放在Vendor下,先在Vendor下建一个excel文件夹
*把下载的PHPExcel文件夹和PHPExcel.php放在excel下.
*/
$this->path=trim($path).'.';
Vendor($this->path.'PHPExcel')
$this->excelObj=new \PHPExcel();
$this->data=$data;
$this->colAttr=array_merge($this->colAttr,$colAttr);
$this->rowAttr=array_merge($this->ro