具体可以看我的个人博客
ArrayToExel
基于phpexel封装成的数组数据导出成exel表的工具类
使用之前
源码中需要导入自己路径的phpexel包路径,在__construct中进行修改
如何使用
引入工具类之后
$exel=new ArrayToExcel($rowAttr,$options);
$exel->push($data_for_export);
需要定义 rowAttr, options,$data_for_export
定义$rowAttr的格式,即定义每一行的样式
$rowAttr=array(
'firstRowHeight'=>'', //第一行的列名的高度
'height'=>'' //第二行以后的高度
);
定义$options的格式,即定义整个exel文件的相关属性
$options=array(
'excelname'=>'', //导出的excel的文件的名称
'creater'=>'', //创建者,
'lastmodified'=>'', //最近修改时间
'title'=>'',//当前活动的主题
'subject'=>'',
'description'=>'',
'keywords'=>'',
'category'=>''
);
定义$data_for_export的格式,即定义每一个sheet需要写入的值
$data_for_export=[
['data'=>[...],'colAttr'=>[..],'sheettitle'=>[..]]
]
要写入多个sheet,只需再添加一个数组
$data_for_export=[
['data'=>[...],'colAttr'=>[..],'sheettitle'=>[..]],
['data'=>[...],'colAttr'=>[..],'sheettitle'=>[..]]
]
data : 我们要插入的二维数组
colAttr : 列的属性设置,格式为:
array(//列的属性设置
'colName'=>'',//第一行的列名
'keyName'=>'',//每一列对应的赋值数组的key值
'width'=>'' //A列的宽度
)
sheettitle : sheet表的标题
示例
写入一个sheet
$data=array(...);//二维数组
$colAttr=array(
'A'=>array(//列的属性设置
'colName'=>'平台单号',//第一行的列名
'keyName'=>'order_no',//每一列对应的赋值数组的key值
'width'=>25 //A列的宽度
),
'B'=>array(//列的属性设置
'colName'=>'平台名称',//第一行的列名
'keyName'=>'shop_name',//每一列对应的赋值数组的key值
'width'=>20 //B列的宽度
)
);
//行的属性设置
$rowAttr=array(
'firstRowHeight'=>'20', //第一行的列名的高度
'height'=>'20' //2-OO无从行的高度
);
$options=array(
'excelname'=>date('Y/m/d',strtotime($start)).'-'.date('Y/m/d',strtotime($end)).'销售订单明细表', //导出的excel的文件的名称
'creater'=>'seven', //创建者,
'lastmodified'=>'', //最近修改时间
'title'=>'销售订单明细表',//当前活动的主题
'subject'=>'销售订单明细表',
'description'=>'数据导出',
'keywords'=>'数据导出',
'category'=>'本期销售订单明细表'
);
//每个sheet需要写入的内容
$data_for_export=[
[
'data'=>$data,
'colAttr'=>$colAttr,
'sheettitle'=>'本期销售订单明细表'
]
];
$exel=new ArrayToExcel($rowAttr,$options);
$exel->push($data_for_export);
写入多个sheet
$data=array(...);//二维数组
//列的属性设置
$colAttr=array(
'A'=>array(//列的属性设置
'colName'=>'平台单号',//第一行的列名
'keyName'=>'order_no',//每一列对应的赋值数组的key值
'width'=>25 //A列的宽度
),
'B'=>array(//列的属性设置
'colName'=>'平台名称',//第一行的列名
'keyName'=>'shop_name',//每一列对应的赋值数组的key值
'width'=>20 //B列的宽度
),
);
//行的属性设置
$rowAttr=array(
'firstRowHeight'=>'20', //第一行的列名的高度
'height'=>'20' //2-OO无从行的高度
);
$options=array(
'excelname'=>date('Y/m/d',strtotime($start)).'-'.date('Y/m/d',strtotime($end)).'销售订单明细表', //导出的excel的文件的名称
'creater'=>'seven', //创建者,
'lastmodified'=>'', //最近修改时间
'title'=>'销售订单明细表',//当前活动的主题
'subject'=>'销售订单明细表',
'description'=>'数据导出',
'keywords'=>'数据导出',
'category'=>'本期销售订单明细表'
);
//每个sheet需要写入的内容
$data_for_export=[
[
'data'=>$this_month_refunds,
'colAttr'=>$colAttr,
'sheettitle'=>'本期退款订单明细表'
],
[
'data'=>$refunds,
'colAttr'=>$colAttr,
'sheettitle'=>'上期退款订单明细表'
],
];
$exel=new ArrayToExcel($rowAttr,$options);
$exel->push($data_for_export);
Todo
- [ ] 添加tp支持
- [ ] 添加laravel支持
- [ ] composer packagist