使用phpexcel导出和导入

导出,封装的现成的方法,拿来就能用
附上phpExcel的下载链接:
链接:https://pan.baidu.com/s/1JkDYZwddaAGsmxbatQJ-RQ
提取码:ylq1

<?php

namespace app\helper;

class Excel
{
    /**
     * 导出为excel
     * $head示例:、
     * $head=[
        "A"=>["ID","id"],
        "B"=>["商品名称","goodsname"],
        "C"=>["商品简介","subtitle"],
        "D"=>["商品状态","grounding"],
        "E"=>["商品价格","price"],
        "F"=>["商品成本价","costprice"],
        "G"=>["会员卡购买价格","card_price"],
        "H"=>["是否参加会员卡","is_take_vipcard"],
        "I"=>["商品原价","productprice"],
        "J"=>["已出售数量","sales"],
        "K"=>["实际销售","seller_count"],
        "L"=>["库存","total"]
        ];
     * $list :列表数据,数组格式
     *
     */
    public static function export( $head , $list ){
        require_once "./PHPExcel/PHPExcel.php";
        $obj = new \PHPExcel();
        $obj_Sheet = $obj->getActiveSheet(); //获得当前活动sheet的活动对象
        $obj_Sheet->setTitle('s1');//设置当前活动Sheet名称
        $obj_Sheet->getDefaultStyle()->getAlignment() //设置居中显示
        ->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER)//垂直居中
        ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//水平居中
        // 表头的填充
        $obj->setActiveSheetIndex(0);
        foreach($head as $key=>$v){
            $obj->getActiveSheet()->setCellValue($key."1", $v[0]);
        }
        foreach ($list as $key => $v){
            foreach($head as $k=>$val){
                $obj->getActiveSheet()->setCellValue($k.($key + 2), $v[$val[1]]);
            }
        }
        $obj_Writer = \PHPExcel_IOFactory::createWriter($obj, 'Excel2007');//创建工厂对象
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="'.time().'.xlsx"');
        header('Cache-Control: max-age=0');
        $obj_Writer->save('php://output');
    }



    /**
     * excel 导入
     * 文件名
     * return 数组格式,从第二行开始
     */
    public static function import($fileName){
        require_once "./PHPExcel/PHPExcel.php";
        $excel = \PHPExcel_IOFactory::load($fileName);
        $data = array();
        $SheetNamas = $excel->getSheetNames();
        $SheetName = $SheetNamas[0];
        $excel->setActiveSheetIndexByName($SheetName);
        $curSheet = $excel->getActiveSheet();
        $rows = $curSheet->getHighestRow();
        $cols = $curSheet->getHighestColumn();
        $head=[];
        for($j = 1; $j <= $rows ; $j++ ){
            $num=0;
            for($k = "A"; $k <= $cols; $k++){
                $key = $k.$j;
                $value = $curSheet->getCell($key)->getValue();
                if($j == 1){
                    $head[]=$value;
                }else{
                    $data[][$head[$num]] = $value;
                }
                $num++;
            }
        }
        return $data;
    }
    
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值