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;
        }

 

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