PhpSpreadsheet使用笔记

这是2019年8月29号写的,当时正在离职交接中,接到一个面试电话打断了就没有写了,今天发文章看到了,所以直接发出来,后面demo例子在补全,不过看了一下大概也差不多

先列出数据

[{"username":"雷子","mobile":"18771156578","province_name":"湖北省","city_name":"武汉市","wx_openid":"obo_nvoxQuctmbTDbTrykT6l-5664","e_id":"1104419134373888000","gb_id":"1104455699976421376","name":"滑板菜鸡","title":"产后","type":"0","create_time":"2019-06-14 17:42:00","og_id":"e6140531786124435d036be5d248c","number":"1","goods_image":"[{\"image\":\"/Public/upload/manager/product/5ccffa865df0e.jpg\",\"title\":\"滑板菜鸡 产后\",\"point\":\"5\",\"number\":\"1\",\"g_id\":\"1104455699976421377\",\"gb_id\":\"1104455699976421376\",\"c_id\":\"45\",\"e_id\":\"1104419134373888000\"}]","express_no":null,"express_type":null,"status":"2","eo_id":"f6140531783010885d036be5caaf3","u_id":"e5055148845692295cceb8606f933","address":"湖北省 武汉市 武昌区 百瑞景5期","eo_mobile":"18771156578","consignee":"雷子","pay_points":"10","recommended_delivery_time":"不限日期|上午 09:00  -  下午17:00(不限时间)"},{"username":"雷子","mobile":"18771156578","province_name":"湖北省","city_name":"武汉市","wx_openid":"obo_nvoxQuctmbTDbTrykT6l-5664","e_id":"1104419134373888000","gb_id":"1104436622683799552","name":"速降板","title":"备孕","type":"0","create_time":"2019-06-14 17:42:00","og_id":"h6140531786112255d036be5d2412","number":"1","goods_image":"[{\"image\":\"/Public/upload/manager/product/5ccfe8c1d76e2.jpg\",\"title\":\"速降板 备孕\",\"point\":\"5\",\"number\":\"1\",\"g_id\":\"1104436622687993856\",\"gb_id\":\"1104436622683799552\",\"c_id\":\"42\",\"e_id\":\"1104419134373888000\"}]","express_no":null,"express_type":null,"status":"2","eo_id":"f6140531783010885d036be5caaf3","u_id":"e5055148845692295cceb8606f933","address":"湖北省 武汉市 武昌区 百瑞景5期","eo_mobile":"18771156578","consignee":"雷子","pay_points":"10","recommended_delivery_time":"不限日期|上午 09:00  -  下午17:00(不限时间)"},{"username":"小花","mobile":"17771857598","province_name":"湖北省","city_name":"武汉市","wx_openid":"obo_nvtKkb0gWcJ4lIAPct2logdY78t","e_id":"1104419134373888000","gb_id":"1104436622683799552","name":"速降板","title":"备孕","type":"0","create_time":"2019-06-14 17:41:52","og_id":"d6140530877797755d036bdcbdef7","number":"1","goods_image":"[{\"image\":\"/Public/upload/manager/product/5ccfe8c1d76e2.jpg\",\"title\":\"速降板 备孕\",\"point\":\"5\",\"number\":\"1\",\"g_id\":\"1104436622687993856\",\"gb_id\":\"1104436622683799552\",\"c_id\":\"42\",\"e_id\":\"1104419134373888000\"}]","express_no":null,"express_type":null,"status":"2","eo_id":"a6140530875097275d036bdcb757d","u_id":"j5053846984389465cce8585ce0c9","address":"内蒙古自治区 呼和浩特市 土默特左旗 新阳镇龙腾小区东区102栋三单元6楼18","eo_mobile":"17771857598","consignee":"唐三","pay_points":"10","recommended_delivery_time":"不限日期|上午 09:00  -  下午17:00(不限时间)"},{"username":"小花","mobile":"17771857598","province_name":"湖北省","city_name":"武汉市","wx_openid":"obo_nvtKkb0gWcJ4lIAPct2logdY78t","e_id":"1104419134373888000","gb_id":"1104455699976421376","name":"滑板菜鸡","title":"产后","type":"0","create_time":"2019-06-14 17:41:52","og_id":"e6140530877897255d036bdcbe2df","number":"1","goods_image":"[{\"image\":\"/Public/upload/manager/product/5ccffa865df0e.jpg\",\"title\":\"滑板菜鸡 产后\",\"point\":\"5\",\"number\":\"1\",\"g_id\":\"1104455699976421377\",\"gb_id\":\"1104455699976421376\",\"c_id\":\"45\",\"e_id\":\"1104419134373888000\"}]","express_no":null,"express_type":null,"status":"2","eo_id":"a6140530875097275d036bdcb757d","u_id":"j5053846984389465cce8585ce0c9","address":"内蒙古自治区 呼和浩特市 土默特左旗 新阳镇龙腾小区东区102栋三单元6楼18","eo_mobile":"17771857598","consignee":"唐三","pay_points":"10","recommended_delivery_time":"不限日期|上午 09:00  -  下午17:00(不限时间)"}]

这个直接贴代码设置头部的

 require 'vendor/autoload.php';
 $spreadsheet = new Spreadsheet();
        $sheet = $spreadsheet->getActiveSheet();
        // $sheet->setCellValue('A1:A2', 'Hello World !');
        $titles = [
            'orderid' =>'订单号',
            'name' =>'收货人姓名',
            'telpone' =>'收货人电话',
            'address' =>'收货地址',
            'time' =>'兑换时间',
            'goodsname' =>'商品名称',
            'goodsnumber' =>'购买数量',
            'ecpressno' =>'快递单号',
            'expersscompany'=>'快递公司'
        ];
        $azs = range('A','Z');
// 写入表格数据
        $i = 0;
//设置头部
        foreach ($titles as $name => $title) {
            $spreadsheet->getActiveSheet()->setCellValue(($azs[$i]).'1', $title);
            $spreadsheet->getActiveSheet()->getColumnDimension(($azs[$i]).'1')->setAutoSize(true);
            /* */
            ++$i;

        }

设置样式

$spreadsheet->getActiveSheet()->getDefaultColumnDimension()->setWidth('20');//默认单元格宽度
$spreadsheet->getActiveSheet()->getDefaultRowDimension()->setRowHeight('20');//默认行高
        //默认垂直居中
 //默认垂直居中
        $spreadsheet->getDefaultStyle()->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
        $spreadsheet->getDefaultStyle()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$n=2;
        foreach ($result as $key=>$val){
            $spreadsheet->getActiveSheet()->setCellValue('A'.$n, $val['og_id']);
            $spreadsheet->getActiveSheet()->getColumnDimension('A'.$n)->setAutoSize(true);
            $spreadsheet->getActiveSheet()->getColumnDimension('A'.$n)->setWidth('5');
            $spreadsheet->getActiveSheet()->setCellValue('B'.$n, $val['consignee']);
            $spreadsheet->getActiveSheet()->getColumnDimension('B'.$n)->setAutoSize(true);
            $spreadsheet->getActiveSheet()->getColumnDimension('B'.$n)->setWidth('5');
            $spreadsheet->getActiveSheet()->setCellValue('C'.$n, $val['eo_mobile']);
            $spreadsheet->getActiveSheet()->getColumnDimension('C'.$n)->setAutoSize(true);
            $spreadsheet->getActiveSheet()->getColumnDimension('C'.$n)->setWidth('10');
            $spreadsheet->getActiveSheet()->setCellValue('D'.$n, $val['address']);
            $spreadsheet->getActiveSheet()->getColumnDimension('D'.$n)->setAutoSize(true);
            $spreadsheet->getActiveSheet()->getStyle('D'.$n)->getAlignment()->setWrapText(true);

            $spreadsheet->getActiveSheet()->setCellValue('E'.$n, $val['create_time']);
            $spreadsheet->getActiveSheet()->getColumnDimension('E'.$n)->setAutoSize(true);
            $spreadsheet->getActiveSheet()->setCellValue('F'.$n, $val['name'].$val['title']);
            $spreadsheet->getActiveSheet()->getColumnDimension('F'.$n)->setAutoSize(true);
            $spreadsheet->getActiveSheet()->setCellValue('G'.$n, $val['number']);
            $spreadsheet->getActiveSheet()->getColumnDimension('G'.$n)->setAutoSize(true);
            $spreadsheet->getActiveSheet()->setCellValue('H'.$n, $val['express_no']);
            $spreadsheet->getActiveSheet()->getColumnDimension('H'.$n)->setAutoSize(true);
            $objValidation = $spreadsheet->getActiveSheet()->getCell('I'.$n)->getDataValidation();
            $objValidation -> setType(DataValidation::TYPE_LIST)
                -> setErrorStyle(DataValidation::STYLE_INFORMATION)
                -> setAllowBlank(false)
                -> setShowInputMessage(true)
                -> setShowErrorMessage(true)
                -> setShowDropDown(true)
                -> setErrorTitle('输入的值有误')
                -> setError('您输入的值不在下拉框列表内.')
                -> setPromptTitle('设备类型')
                //把sheet名为mySheet2的A1,A2,A3作为选项
           -> setFormula1('"'.$EXPERSS.'"');
                //设置为具体的内容
                //-> setFormula1('"select1,select2,select3"');




            $spreadsheet->getActiveSheet()->getColumnDimension('H'.$n)->setAutoSize(true);
            ++$n;
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章