基于phpexel封装成的数组数据导出成exel表的工具类

具体可以看我的个人博客

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值