1]; if ($orderStatus != 10000) { $where['orderStatus'] = $orderStatus; } $startDate = input('startDate'); $endDate = input('endDate'); $orderNo = input('orderNo'); $shopName = input('shopName'); $userPhone = input('userPhone'); $userId = (int)input('userId'); $payType = (int)input('payType', -1); $deliverType = (int)input('deliverType', -1); $sort = input('sort'); $investmentStaff = htmlspecialchars(input('investmentStaff')); // mark if ($isAppraise != -1) $where['isAppraise'] = $isAppraise; if ($orderNo != '') $where['orderNo'] = ['like', '%' . $orderNo . '%']; if ($shopName != '') $where['shopName|shopSn'] = ['like', '%' . $shopName . '%']; if ($userPhone != '') $where['o.userPhone'] = ['like', '%' . $userPhone . '%']; if ($userId > 0) $where['o.userId'] = $userId; if ($startDate != '' && $endDate != '') { $where['o.createTime'] = ['between', [$startDate . ' 00:00:00', $endDate . ' 23:59:59']]; } else if ($startDate != '') { $where['o.createTime'] = ['>=', $startDate . ' 00:00:00']; } else if ($endDate != '') { $where['o.createTime'] = ['<=', $endDate . ' 23:59:59']; } $areaId1 = (int)input('areaId1'); if ($areaId1 > 0) { $where['s.areaIdPath'] = ['like', "$areaId1%"]; $areaId2 = (int)input("areaId1_" . $areaId1); if ($areaId2 > 0) $where['s.areaIdPath'] = ['like', $areaId1 . "_" . "$areaId2%"]; $areaId3 = (int)input("areaId1_" . $areaId1 . "_" . $areaId2); if ($areaId3 > 0) $where['s.areaId'] = $areaId3; } if ($deliverType != -1) $where['o.deliverType'] = $deliverType; if ($payType != -1) $where['o.payType'] = $payType; $order = 'o.createTime desc'; if ($sort) { $sort = str_replace('.', ' ', $sort); $order = $sort; } //mark if ($investmentStaff != "") { $where['se.investmentStaff'] = ['like', "%" . $investmentStaff . "%"]; $where['orderStatus'] = 2; } // $page = $this->alias('o')->join('__USERS__ u','o.userId=u.userId','left')->join('__SHOPS__ s','o.shopId=s.shopId','left')->where($where) // ->field('o.orderId,o.orderNo,u.loginName,s.shopName,s.shopId,s.shopQQ,s.shopWangWang,o.goodsMoney,o.totalMoney,o.realTotalMoney, // o.orderStatus,o.userName,o.deliverType,payType,payFrom,o.orderStatus,orderSrc,o.createTime,o.orderCode') // ->order($order) // ->paginate(input('limit/d'))->toArray(); //添加对接人员查询 mark 20180514 $page = $this->alias('o')->join('__USERS__ u', 'o.userId=u.userId', 'left')->join('__SHOPS__ s', 'o.shopId=s.shopId', 'left')->join('__SHOP_EXTRAS__ se', 'o.shopId=se.shopId', 'left')->where($where) ->field('o.orderId,o.orderNo,u.loginName,s.shopName,s.shopId,s.userId shopUserId,s.shopQQ,s.shopWangWang,o.goodsMoney,o.totalMoney,o.realTotalMoney, o.orderStatus,o.userName,o.payable,o.deliverType,o.goodsType,o.helpUserId,o.productNum,o.couponsNum,o.wangNum,o.moneyNum,o.productHandlingFee,o.productTaxFee,o.couponsHandlingFee,o.couponsTaxFee,payType,payFrom,o.orderStatus,orderSrc,o.createTime,o.orderCode,se.investmentStaff') ->order($order) ->paginate(input('limit/d'))->toArray(); $m = Model('common/Table'); if (count($page['Rows']) > 0) { foreach ($page['Rows'] as $key => $v) { $m->setTable('order_goods'); $orderGoodsList = $m->getList(['orderId' => $v['orderId']], 'goodsPrice,goodsNum,freight,discountRate'); $discountMoney = 0;//优惠款 foreach ($orderGoodsList as &$val) { $discountMoney += ($val['goodsPrice'] * $val['goodsNum'] + $val['freight']) * ($val['discountRate'] * 0.01);//优惠款 } $page['Rows'][$key]['coupons'] = number_format($discountMoney,2,'.',''); if((float)$v['payable'] < 0){ $page['Rows'][$key]['payable'] = number_format(abs($v['payable']),2,'.',''); }else{ $page['Rows'][$key]['payable'] = '0.00'; } $page['Rows'][$key]['loginName'] = $v['loginName']; $page['Rows'][$key]['accidentGet'] = number_format($page['Rows'][$key]['productNum'] + $page['Rows'][$key]['couponsNum'],2,'.',''); $page['Rows'][$key]['accidentTaxGet'] = number_format($page['Rows'][$key]['productTaxFee'] + $page['Rows'][$key]['couponsTaxFee'],2,'.',''); $page['Rows'][$key]['accidentHandlingGet'] = number_format($page['Rows'][$key]['productHandlingFee'] + $page['Rows'][$key]['couponsHandlingFee'],2,'.',''); $page['Rows'][$key]['userName'] = $v['userName']; $shopUserInfo = getUserInfo(['userId' => $v['shopUserId']], 'loginName'); $page['Rows'][$key]['shopLoginName'] = $shopUserInfo['loginName']; $page['Rows'][$key]['payType'] = WSTLangPayType($v['payType']); $page['Rows'][$key]['deliverType'] = WSTLangDeliverType($v['deliverType'] == 1); if ($v["helpUserId"] != 0) { $page['Rows'][$key]['helpUser'] = Db::name('users')->where('userId', '=', $v["helpUserId"]) ->field("userName")->find(); } else { $page['Rows'][$key]['helpUser'] = ["userName" => '']; } $page['Rows'][$key]['status'] = WSTLangOrderStatus($v['orderStatus']); $page['Rows'][$key]['orderCodeTitle'] = WSTOrderCodeTitle($v['orderCode']); } } return $page; } /** * 获取凭证 * @return [type] [description] */ public function getCertificate() { $certificateStatus = (int)input('post.certificateStatus'); $shopName = input('post.shopName'); $data = []; $m = Db::name('orders'); $tm = Model('common/Table'); $tm->setTable('shops'); // $certificateStatus = 2; if ($certificateStatus <= 1) {//未上传和不需上传的订单 $where = ['certificateStatus' => $certificateStatus, 'orderStatus' => 2, 'dataFlag' => 1]; if ($shopName) { $shopIds = $tm->getColumn(['shopName' => ['LIKE', '%' . $shopName . '%']], 'shopId'); $where = array_merge($where, ['shopId' => ['IN', $shopIds]]); } $data = $m->where($where)->group('shopId')->field('shopId,sum(payable) payNum')->paginate(input('limit/d'))->toArray(); foreach ($data['Rows'] as &$v) { $v['status'] = $certificateStatus; $v['list'] = $m->where($where)->where(['shopId' => $v['shopId']])->field('orderId,orderNo,payable')->select(); } } else { $where = ['status' => $certificateStatus]; if ($shopName) { $shopIds = $tm->getColumn(['shopName' => ['LIKE', '%' . $shopName . '%']], 'shopId'); $where = array_merge($where, ['shopId' => ['IN', $shopIds]]); } $data = Db::name('order_shop_certificate')->where($where)->field('*')->paginate(input('limit/d'))->toArray(); foreach ($data['Rows'] as &$v) { $v['payNum'] = $m->where(['orderId' => ['IN', $v['orderIds']]])->sum('payable'); $v['list'] = $m->where(['orderId' => ['IN', $v['orderIds']]])->field('orderId,orderNo,payable')->select(); } } foreach ($data['Rows'] as &$val) { $val['shop'] = $tm->getInfo(['shopId' => $val['shopId']], 'shopName,phone'); } return $data; } //凭证设置 public function certificateSet() { $id = input('post.id'); $status = input('post.status') + 2; $data['status'] = $status; $data['reasonsForRefusal'] = (string)input('post.reasonsForRefusal'); $m = Model('common/Table'); $m->setTable('order_shop_certificate'); $orderIds = $m->getField(['id' => $id], 'orderIds'); Db::startTrans(); try { $m->setTable('order_shop_certificate'); if (false !== $m->updateInfo(['id' => $id], $data)) { $m->setTable('orders'); $m->updateInfo(['orderId' => ['IN', $orderIds]], ['certificateStatus' => $status]); } Db::commit(); return WSTReturn("操作成功", 1); } catch (\Exception $e) { Db::rollback(); errLog($e); } return WSTReturn("操作失败"); } /** * 获取用户退款订单列表 */ public function refundPageQuery() { $where = ['o.dataFlag' => 1]; $where['orderStatus'] = ['in', [-1, -4]]; $where['o.payType'] = 1; $orderNo = input('orderNo'); $shopName = input('shopName'); $deliverType = (int)input('deliverType', -1); $areaId1 = (int)input('areaId1'); $areaId2 = (int)input('areaId2'); $areaId3 = (int)input('areaId3'); $isRefund = (int)input('isRefund', -1); if ($orderNo != '') $where['orderNo'] = ['like', '%' . $orderNo . '%']; if ($shopName != '') $where['shopName|shopSn'] = ['like', '%' . $shopName . '%']; if ($areaId1 > 0) $where['s.areaId1'] = $areaId1; if ($areaId2 > 0) $where['s.areaId2'] = $areaId2; if ($areaId3 > 0) $where['s.areaId3'] = $areaId3; if ($deliverType != -1) $where['o.deliverType'] = $deliverType; if ($isRefund != -1) $where['o.isRefund'] = $isRefund; $page = $this->alias('o')->join('__SHOPS__ s', 'o.shopId=s.shopId', 'left') ->join('__ORDER_REFUNDS__ orf ', 'o.orderId=orf.orderId', 'left') ->where($where) ->field('o.orderId,o.orderNo,s.shopName,s.shopId,s.shopQQ,s.shopWangWang,o.goodsMoney,o.totalMoney,o.realTotalMoney, o.orderStatus,o.userName,o.deliverType,payType,payFrom,o.orderStatus,orderSrc,orf.refundRemark,isRefund,o.createTime') ->order('o.createTime', 'desc') ->paginate(input('pagesize/d'))->toArray(); if (count($page['Rows']) > 0) { foreach ($page['Rows'] as $key => $v) { $page['Rows'][$key]['payType'] = WSTLangPayType($v['payType']); $page['Rows'][$key]['deliverType'] = WSTLangDeliverType($v['deliverType'] == 1); $page['Rows'][$key]['status'] = WSTLangOrderStatus($v['orderStatus']); } } return $page; } /** * 获取退款资料 */ public function getInfoByRefund() { return $this->where(['orderId' => (int)input('get.id'), 'isRefund' => 0, 'orderStatus' => ['in', [-1, -4]]]) ->field('orderNo,orderId,goodsMoney,totalMoney,realTotalMoney,deliverMoney,payType,payFrom,tradeNo') ->find(); } /** * 退款 */ public function orderRefund() { $id = (int)input('post.id'); $content = input('post.content'); if ($id == 0) return WSTReturn("操作失败!"); $order = $this->where(['orderId' => (int)input('post.id'), 'payType' => 1, 'isRefund' => 0, 'orderStatus' => ['in', [-1, -4]]]) ->field('userId,orderNo,orderId,goodsMoney,totalMoney,realTotalMoney,deliverMoney,payType,payFrom,tradeNo') ->find(); if (empty($order)) return WSTReturn("该订单不存在或已退款!"); Db::startTrans(); try { $order->isRefund = 1; $order->save(); //修改用户账户金额 Db::name('users')->where('userId', $order->userId)->setInc('userMoney', $order->realTotalMoney); //创建资金流水记录 $lm = []; $lm['targetType'] = 0; $lm['targetId'] = $order->userId; $lm['dataId'] = $order->orderId; $lm['dataSrc'] = 1; $lm['remark'] = '订单【' . $order->orderNo . '】退款¥' . $order->realTotalMoney . "。" . (($content != '') ? "【退款备注】:" . $content : ''); $lm['moneyType'] = 1; $lm['money'] = $order->realTotalMoney; $lm['payType'] = 0; $lm['createTime'] = date('Y-m-d H:i:s'); model('LogMoneys')->save($lm); //创建退款记录 $data = []; $data['orderId'] = $id; $data['refundRemark'] = $content; $data['refundTime'] = date('Y-m-d H:i:s'); $rs = Db::name('order_refunds')->insert($data); if (false !== $rs) { //发送一条用户信息 WSTSendMsg($order['userId'], "您的退款订单【" . $order['orderNo'] . "】已处理,请留意账户到账情况。" . (($content != '') ? "【退款备注:" . $content . "】" : ""), ['from' => 1, 'dataId' => $id]); Db::commit(); return WSTReturn("操作成功", 1); } } catch (\Exception $e) { Db::rollback(); errLog($e); } return WSTReturn("操作失败,请刷新后再重试"); } /** * 获取订单详情 */ public function getByView($orderId) { $orders = $this->alias('o')->join('__EXPRESS__ e', 'o.expressId=e.expressId', 'left') ->join('__ORDER_REFUNDS__ orf ', 'o.orderId=orf.orderId', 'left') ->join('__SHOPS__ s', 'o.shopId=s.shopId', 'left') ->join('__USERS__ u', 'o.userId=u.userId', 'left') ->where('o.dataFlag=1 and o.orderId=' . $orderId) ->field('o.*,e.expressName,u.loginName,s.shopName,s.shopQQ,s.shopWangWang,orf.refundRemark,orf.refundTime,orf.backProductNum,orf.backCouponsNum,orf.backWangNum')->find(); if (empty($orders)) return WSTReturn("无效的订单信息"); //获取订单信息 $orders['log'] = Db::name('log_orders')->where('orderId', $orderId)->order('logId asc')->select(); //获取订单商品 if ($orders["helpUserId"] != 0) { $orders["helpUser"] = Db::name('users')->where('userId', '=', $orders["helpUserId"]) ->field("userName")->find(); } $orders['goods'] = Db::name('order_goods')->where('orderId', $orderId)->order('id asc')->select(); $orders['userCertificate'] = Db::name('order_certificate')->where(['orderId' => $orderId, 'isShop' => 0])->order('id desc')->select(); //$orders['shopCertificate'] = Db::name('order_certificate')->where(['orderId'=>$orderId,'isShop'=>1])->order('id desc')->select(); return $orders; } /** * 导出订单 */ public function toExport() { $name = '订单表'; $where = ['o.dataFlag' => 1]; $orderStatus = (int)input('orderStatus', 0); if ($orderStatus == 0) { $name = '待发货订单表'; } else if ($orderStatus == -2) { $name = '待付款订单表'; } else if ($orderStatus == 1) { $name = '配送中订单表'; } else if ($orderStatus == 10000) { $name = '订单列表'; } else if ($orderStatus == -1) { $name = '取消订单表'; } else if ($orderStatus == -3) { $name = '拒收订单表'; } else if ($orderStatus == 2) { $name = '已收货订单表'; } if ($orderStatus != 10000) { $where['o.orderStatus'] = $orderStatus; } $startDate = input('startDate'); $endDate = input('endDate'); $orderNo = input('orderNo'); $shopName = input('shopName'); $userPhone = input('userPhone'); $userId = (int)input('userId'); $payType = (int)input('payType', -1); $deliverType = (int)input('deliverType', -1); if ($startDate != '' && $endDate != '') { $where['o.createTime'] = ['between', [$startDate . ' 00:00:00', $endDate . ' 23:59:59']]; } else if ($startDate != '') { $where['o.createTime'] = ['>=', $startDate . ' 00:00:00']; } else if ($endDate != '') { $where['o.createTime'] = ['<=', $endDate . ' 23:59:59']; } if ($orderNo != '') $where['orderNo'] = ['like', '%' . $orderNo . '%']; if ($shopName != '') $where['shopName|shopSn'] = ['like', '%' . $shopName . '%']; if ($userPhone != '') $where['o.userPhone'] = ['like', '%' . $userPhone . '%']; if ($userId > 0) { $where['o.userId'] = $userId; $user = Db::name('users')->where('userId', $userId)->field('userName')->find(); $name = $user['userName'] . '的订单表'; } $areaId1 = (int)input('areaId1'); if ($areaId1 > 0) { $where['s.areaIdPath'] = ['like', "$areaId1%"]; $areaId2 = (int)input("areaId1_" . $areaId1); if ($areaId2 > 0) $where['s.areaIdPath'] = ['like', $areaId1 . "_" . "$areaId2%"]; $areaId3 = (int)input("areaId1_" . $areaId1 . "_" . $areaId2); if ($areaId3 > 0) $where['s.areaId'] = $areaId3; } if ($deliverType != -1) $where['o.deliverType'] = $deliverType; if ($payType != -1) $where['o.payType'] = $payType; $page = $this->alias('o')->where($where) ->join('__USERS__ u', 'o.userId=u.userId', 'left') ->join('__SHOPS__ s', 'o.shopId=s.shopId', 'left') ->join('__LOG_ORDERS__ lo', 'lo.orderId=o.orderId and lo.orderStatus in (-1,-3) ', 'left') ->field('o.orderId,o.payable,o.orderNo,u.loginName,s.shopName,s.shopId,s.shopQQ,s.shopWangWang,o.goodsMoney,o.totalMoney,o.realTotalMoney,o.deliverMoney,lo.logContent,o.orderStatus,o.userName,o.userAddress,o.userPhone,o.orderRemarks,o.invoiceClient,o.receiveTime, o.deliveryTime,o.deliverType,o.productNum,o.couponsNum,o.wangNum,o.moneyNum,o.productHandlingFee,o.productTaxFee,o.couponsHandlingFee,o.couponsTaxFee,payType,payFrom,o.orderStatus,orderSrc,o.commissionFee,o.createTime') ->order('o.createTime desc') ->select(); if (count($page) > 0) { foreach ($page as $key => $v) { $m = Model('common/Table'); $m->setTable('order_goods'); $discountMoney = 0;//优惠款 $orderGoodsList = $m->getList(['orderId' => $v['orderId']], 'goodsPrice,goodsNum,freight,discountRate'); foreach ($orderGoodsList as &$val) { $discountMoney += ($val['goodsPrice'] * $val['goodsNum'] + $val['freight']) * ($val['discountRate'] * 0.01);//优惠款 } $page[$key]['coupons'] = number_format($discountMoney,2,'.',''); if((float)$v['payable'] < 0){ $page[$key]['payable'] = number_format(abs($v['payable']),2,'.',''); }else{ $page[$key]['payable'] = '0.00'; } $page[$key]['userName'] = "【" . $v['loginName'] . "】" . $v['userName']; $page[$key]['payTypeName'] = WSTLangPayType($v['payType']); $page[$key]['deliverType'] = WSTLangDeliverType($v['deliverType'] == 1); $page[$key]['status'] = WSTLangOrderStatus($v['orderStatus']); } } Loader::import('phpexcel.PHPExcel.IOFactory'); $objPHPExcel = new \PHPExcel(); // 设置excel文档的属性 $objPHPExcel->getProperties()->setCreator("heyuanhui")//创建人 ->setLastModifiedBy("heyuanhui")//最后修改人 ->setTitle($name)//标题 ->setSubject($name)//题目 ->setDescription($name)//描述 ->setKeywords("订单")//关键字 ->setCategory("Test result file");//种类 // 开始操作excel表 $objPHPExcel->setActiveSheetIndex(0); // 设置工作薄名称 $objPHPExcel->getActiveSheet()->setTitle(iconv('gbk', 'utf-8', 'Sheet')); // 设置默认字体和大小 $objPHPExcel->getDefaultStyle()->getFont()->setName(iconv('gbk', 'utf-8', '')); $objPHPExcel->getDefaultStyle()->getFont()->setSize(11); $styleArray = array( 'font' => array( 'bold' => true, 'color' => array( 'argb' => 'ffffffff', ) ), 'borders' => array( 'outline' => array( 'style' => \PHPExcel_Style_Border::BORDER_THIN, //设置border样式 'color' => array('argb' => 'FF000000'), //设置border颜色 ) ) ); //设置宽 $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(12); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(12); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(8); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(8); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(16); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(8); $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(16); $objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(26); $objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(8); $objPHPExcel->getActiveSheet()->getColumnDimension('O')->setWidth(16); $objPHPExcel->getActiveSheet()->getColumnDimension('P')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('Q')->setWidth(12); $objPHPExcel->getActiveSheet()->getColumnDimension('R')->setWidth(16); $objPHPExcel->getActiveSheet()->getColumnDimension('S')->setWidth(26); $objPHPExcel->getActiveSheet()->getColumnDimension('T')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('U')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('V')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('W')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('X')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('Y')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('Z')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('AA')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('AB')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('AC')->setWidth(25); $objPHPExcel->getActiveSheet()->getStyle('A1:AC1')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID); $objPHPExcel->getActiveSheet()->getStyle('A1:AC1')->getFill()->getStartColor()->setARGB('333399'); $objPHPExcel->getActiveSheet() ->setCellValue('A1', '序号') ->setCellValue('B1', '订单编号') ->setCellValue('C1', '实付金额') ->setCellValue('D1', '收货人') ->setCellValue('E1', '现金额') ->setCellValue('F1', '旺旺券') ->setCellValue('G1', '产品券') ->setCellValue('H1', '产品券税') ->setCellValue('I1', '产品券手续费') ->setCellValue('J1', '优惠券') ->setCellValue('K1', '优惠券税') ->setCellValue('L1', '优惠券手续费') ->setCellValue('M1', '店铺名称') ->setCellValue('N1', '优惠款') ->setCellValue('O1', '商户付现') ->setCellValue('P1', '下单时间') ->setCellValue('Q1', '订单状态') ->setCellValue('R1', '收货地址') ->setCellValue('S1', '联系方式') ->setCellValue('T1', '支付方式') ->setCellValue('U1', '配送方式') ->setCellValue('V1', '买家留言') ->setCellValue('W1', '发票信息') ->setCellValue('X1', '订单总金额') ->setCellValue('Y1', '运费') ->setCellValue('Z1', '支付方式') ->setCellValue('AA1', '发货时间') ->setCellValue('AB1', '收货时间') ->setCellValue('AC1', '取消/拒收原因'); $objPHPExcel->getActiveSheet()->getStyle('A1:AC1')->applyFromArray($styleArray); for ($row = 0; $row < count($page); $row++) { $i = $row + 2; $objPHPExcel->getActiveSheet() ->setCellValue('A' . $i, $row) ->setCellValue('B' . $i, $page[$row]['orderNo']) ->setCellValue('C' . $i, $page[$row]['realTotalMoney']) ->setCellValue('D' . $i, $page[$row]['userName']) ->setCellValue('E' . $i, $page[$row]['moneyNum']) ->setCellValue('F' . $i, $page[$row]['wangNum']) ->setCellValue('G' . $i, $page[$row]['productNum']) ->setCellValue('H' . $i, $page[$row]['productTaxFee']) ->setCellValue('I' . $i, $page[$row]['productHandlingFee']) ->setCellValue('J' . $i, $page[$row]['couponsNum']) ->setCellValue('K' . $i, $page[$row]['couponsTaxFee']) ->setCellValue('L' . $i, $page[$row]['couponsHandlingFee']) ->setCellValue('M' . $i, $page[$row]['shopName']) ->setCellValue('N' . $i, $page[$row]['coupons']) ->setCellValue('O' . $i, $page[$row]['payable']) ->setCellValue('P' . $i, $page[$row]['createTime']) ->setCellValue('Q' . $i, $page[$row]['status']) ->setCellValue('R' . $i, $page[$row]['userAddress']) ->setCellValue('S' . $i, $page[$row]['userPhone']) ->setCellValue('T' . $i, $page[$row]['payTypeName']) ->setCellValue('U' . $i, $page[$row]['deliverType']) ->setCellValue('V' . $i, $page[$row]['orderRemarks']) ->setCellValue('W' . $i, $page[$row]['invoiceClient']) ->setCellValue('X' . $i, $page[$row]['totalMoney']) ->setCellValue('Y' . $i, $page[$row]['deliverMoney']) ->setCellValue('Z' . $i, $page[$row]['payFrom']) ->setCellValue('AA' . $i, $page[$row]['deliveryTime']) ->setCellValue('AB' . $i, $page[$row]['receiveTime']) ->setCellValue('AC' . $i, $page[$row]['logContent']); } //输出EXCEL格式 $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); // 从浏览器直接输出$filename header('Content-Type:application/csv;charset=UTF-8'); header("Pragma: public"); header("Expires: 0"); header("Cache-Control:must-revalidate, post-check=0, pre-check=0"); header("Content-Type:application/force-download"); header("Content-Type:application/vnd.ms-excel;"); header("Content-Type:application/octet-stream"); header("Content-Type:application/download"); header('Content-Disposition: attachment;filename="' . $name . '.xls"'); header("Content-Transfer-Encoding:binary"); $objWriter->save('php://output'); } }