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