getProperties()->setCreator($author) ->setLastModifiedBy($author) ->setTitle($author) ->setSubject($author) ->setDescription($author) ->setKeywords($author) ->setCategory($author); //设置excel工作表名及文件名 $title = $data['title']; $objPHPExcel->getActiveSheet()->setTitle($title); $objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(25); if(!isset($data['list'])){ throw new \Exception("缺少数据"); } foreach ($data['list'] as $index => $item){ $rowIndex = $index + 1; for($k=0; $k < count($item); $k++){ $pos = self::getSheetColIndex($k+1).$rowIndex; if($style == "default"){ $objPHPExcel->getActiveSheet()->setCellValue($pos,$item[$k]); if($rowIndex == 1){ $objPHPExcel->getActiveSheet()->getStyle($pos)->getFont()->setSize(10)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle($pos)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); } } else { $objPHPExcel->getActiveSheet()->setCellValue($pos,$item[$k]); } } } $exportPath = dirname($filename); $exportPath = trim($exportPath,"."); $exportPath = trim($exportPath,"/"); if(!file_exists($exportPath) && strlen($exportPath)){ self::mkDir($exportPath); } $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save($filename); if(file_exists($filename)){ return $filename; } throw new \Exception("文件导出失败"); } public static function csv() { } //目录创建(递归创建) public static function mkDir($dir, $mode = 0777) { return is_dir($dir) or self::mkDir(dirname($dir), $mode) and mkdir($dir, $mode); } //导出订单 public static function export_goods_order_put($data,$fileName,$is_local) { set_time_limit(0); $objPHPExcel = new \PHPExcel(); $objPHPExcel->getActiveSheet()->SetCellValue('A1', '订单编号'); $objPHPExcel->getActiveSheet()->SetCellValue('B1', '订单金额(原价)'); $objPHPExcel->getActiveSheet()->SetCellValue('C1', '订单金额(优惠后)'); $objPHPExcel->getActiveSheet()->SetCellValue('D1', '订单金额(实付)'); $objPHPExcel->getActiveSheet()->SetCellValue('E1', '会员折扣'); $objPHPExcel->getActiveSheet()->SetCellValue('F1', '积分抵扣'); $objPHPExcel->getActiveSheet()->SetCellValue('G1', '下单用户(用户名)'); $objPHPExcel->getActiveSheet()->SetCellValue('H1', '下单用户(手机号)'); $objPHPExcel->getActiveSheet()->SetCellValue('I1', '所属门店'); $objPHPExcel->getActiveSheet()->SetCellValue('J1', '购买服务'); $objPHPExcel->getActiveSheet()->SetCellValue('K1', '订单状态'); $objPHPExcel->getActiveSheet()->SetCellValue('L1', '下单日期'); $objPHPExcel->getActiveSheet()->SetCellValue('M1', '支付日期'); $objPHPExcel->getActiveSheet()->SetCellValue('N1', '商品名称'); $objPHPExcel->getActiveSheet()->SetCellValue('O1', '购买数量'); $objPHPExcel->getActiveSheet()->SetCellValue('P1', '单价'); //设置第一行的背景颜色 $objPHPExcel->getActiveSheet() ->getStyle('A1:P1') ->getFill() ->setFillType(\PHPExcel_Style_Fill::FILL_SOLID) ->getStartColor() ->setRGB('FFFF00'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(35); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(30); $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(10); $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(30); $objPHPExcel->getActiveSheet()->getColumnDimension('O')->setWidth(10); $objPHPExcel->getActiveSheet()->getColumnDimension('P')->setWidth(10); $i = 2; foreach($data as $key => $val){ $children = $data[$key]['children']; $count = count($children); $k = $i; //初始化订单行号 foreach ($children as $index => $item){ $objPHPExcel->getActiveSheet()->SetCellValue('N'.$k, $children[$index]['goods_name']); $objPHPExcel->getActiveSheet()->SetCellValue('O'.$k, $children[$index]['num']); $objPHPExcel->getActiveSheet()->SetCellValue('P'.$k, $children[$index]['unit_price']); $k++; } $objPHPExcel->getActiveSheet()->SetCellValue('A'.$i, $data[$key]['order_no']); $objPHPExcel->getActiveSheet()->SetCellValue('B'.$i, $data[$key]['total_price']); $objPHPExcel->getActiveSheet()->SetCellValue('C'.$i, $data[$key]['total_goods_price']); $objPHPExcel->getActiveSheet()->SetCellValue('D'.$i, $data[$key]['total_pay_price']); $objPHPExcel->getActiveSheet()->SetCellValue('E'.$i, $data[$key]['member_discount']); $objPHPExcel->getActiveSheet()->SetCellValue('F'.$i, $data[$key]['integral']); $objPHPExcel->getActiveSheet()->SetCellValue('G'.$i, $data[$key]['nickname']); $objPHPExcel->getActiveSheet()->SetCellValue('H'.$i, $data[$key]['mobile_phone']); $objPHPExcel->getActiveSheet()->SetCellValue('I'.$i, $data[$key]['store_name']); $objPHPExcel->getActiveSheet()->SetCellValue('J'.$i, $data[$key]['plugin_sign_cn']); $objPHPExcel->getActiveSheet()->SetCellValue('K'.$i, $data[$key]['state_cn']); $objPHPExcel->getActiveSheet()->SetCellValue('L'.$i, $data[$key]['created_at_cn']); $objPHPExcel->getActiveSheet()->SetCellValue('M'.$i, $data[$key]['pay_time_cn']); if(!empty($count)){ $k = $k-1; //行号回退一行 $index_A = "A{$i}:A{$k}"; $index_B = "B{$i}:B{$k}"; $index_C = "C{$i}:C{$k}"; $index_D = "D{$i}:D{$k}"; $index_E = "E{$i}:E{$k}"; $index_F = "F{$i}:F{$k}"; $index_G = "G{$i}:G{$k}"; $index_H = "H{$i}:H{$k}"; $index_I = "I{$i}:I{$k}"; $index_J = "J{$i}:J{$k}"; $index_K = "K{$i}:K{$k}"; $index_L = "L{$i}:L{$k}"; $index_M = "M{$i}:M{$k}"; $objPHPExcel->getActiveSheet()->mergeCells($index_A); $objPHPExcel->getActiveSheet()->mergeCells($index_B); $objPHPExcel->getActiveSheet()->mergeCells($index_C); $objPHPExcel->getActiveSheet()->mergeCells($index_D); $objPHPExcel->getActiveSheet()->mergeCells($index_E); $objPHPExcel->getActiveSheet()->mergeCells($index_F); $objPHPExcel->getActiveSheet()->mergeCells($index_G); $objPHPExcel->getActiveSheet()->mergeCells($index_H); $objPHPExcel->getActiveSheet()->mergeCells($index_I); $objPHPExcel->getActiveSheet()->mergeCells($index_J); $objPHPExcel->getActiveSheet()->mergeCells($index_K); $objPHPExcel->getActiveSheet()->mergeCells($index_L); $objPHPExcel->getActiveSheet()->mergeCells($index_M); $i = $k; //初始化行号 } $i++; } $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); if(!$is_local){ ob_clean(); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="' . $fileName . '.xlsx'); header('Cache-Control: max-age=1'); $objWriter->save('php://output'); exit; }else{ $y_m = date('Y-m',time()); $file_dir = "Excel/saleroom/{$y_m}"; if(!file_exists($file_dir)){ self::mkDir($file_dir); } $objWriter->save ( "{$file_dir}/{$fileName}.xls" ); exit(); } } //导出订单 public static function export_boox_order_put($data,$fileName,$is_local) { set_time_limit(0); $objPHPExcel = new \PHPExcel(); $objPHPExcel->getActiveSheet()->SetCellValue('A1', '订单编号'); //created_at_cn $objPHPExcel->getActiveSheet()->SetCellValue('B1', '订单金额(原价)'); //order_no $objPHPExcel->getActiveSheet()->SetCellValue('C1', '订单金额(优惠后)'); //supplier_name $objPHPExcel->getActiveSheet()->SetCellValue('D1', '订单金额(实付)'); //supplier_name $objPHPExcel->getActiveSheet()->SetCellValue('E1', '会员折扣'); //supplier_name $objPHPExcel->getActiveSheet()->SetCellValue('F1', '积分抵扣'); //supplier_name $objPHPExcel->getActiveSheet()->SetCellValue('G1', '下单用户(用户名)'); //warehouse_name $objPHPExcel->getActiveSheet()->SetCellValue('H1', '下单用户(手机号)'); //warehouse_name $objPHPExcel->getActiveSheet()->SetCellValue('I1', '所属门店'); //warehouse_name $objPHPExcel->getActiveSheet()->SetCellValue('J1', '购买服务'); //warehouse_name $objPHPExcel->getActiveSheet()->SetCellValue('K1', '订单状态'); //op_status_cn $objPHPExcel->getActiveSheet()->SetCellValue('L1', '包厢名称'); //num $objPHPExcel->getActiveSheet()->SetCellValue('M1', '开始时间'); //put_time $objPHPExcel->getActiveSheet()->SetCellValue('N1', '结束时间'); //put_time $objPHPExcel->getActiveSheet()->SetCellValue('O1', '时长(小时)'); //put_time $objPHPExcel->getActiveSheet()->SetCellValue('P1', '下单时间'); //put_time $objPHPExcel->getActiveSheet()->SetCellValue('Q1', '支付时间'); //put_time //设置第一行的背景颜色 $objPHPExcel->getActiveSheet() ->getStyle('A1:P1') ->getFill() ->setFillType(\PHPExcel_Style_Fill::FILL_SOLID) ->getStartColor() ->setRGB('FFFF00'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(35); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(30); $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(10); $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(10); $objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('O')->setWidth(10); $objPHPExcel->getActiveSheet()->getColumnDimension('P')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('Q')->setWidth(20); $i = 2; foreach($data as $key => $val){ $objPHPExcel->getActiveSheet()->SetCellValue('A'.$i, $data[$key]['order_no']); $objPHPExcel->getActiveSheet()->SetCellValue('B'.$i, $data[$key]['total_price']); $objPHPExcel->getActiveSheet()->SetCellValue('C'.$i, $data[$key]['total_goods_price']); $objPHPExcel->getActiveSheet()->SetCellValue('D'.$i, $data[$key]['total_pay_price']); $objPHPExcel->getActiveSheet()->SetCellValue('E'.$i, $data[$key]['member_discount']); $objPHPExcel->getActiveSheet()->SetCellValue('F'.$i, $data[$key]['integral']); $objPHPExcel->getActiveSheet()->SetCellValue('G'.$i, $data[$key]['nickname']); $objPHPExcel->getActiveSheet()->SetCellValue('H'.$i, $data[$key]['mobile_phone']); $objPHPExcel->getActiveSheet()->SetCellValue('I'.$i, $data[$key]['store_name']); $objPHPExcel->getActiveSheet()->SetCellValue('J'.$i, $data[$key]['plugin_sign_cn']); $objPHPExcel->getActiveSheet()->SetCellValue('K'.$i, $data[$key]['state_cn']); $objPHPExcel->getActiveSheet()->SetCellValue('L'.$i, $data[$key]['box_name']); $objPHPExcel->getActiveSheet()->SetCellValue('M'.$i, $data[$key]['start_time']); $objPHPExcel->getActiveSheet()->SetCellValue('N'.$i, $data[$key]['end_time']); $objPHPExcel->getActiveSheet()->SetCellValue('O'.$i, $data[$key]['duration']); $objPHPExcel->getActiveSheet()->SetCellValue('P'.$i, $data[$key]['created_at_cn']); $objPHPExcel->getActiveSheet()->SetCellValue('Q'.$i, $data[$key]['pay_time_cn']); $i++; } $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); if(!$is_local){ ob_clean(); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="' . $fileName . '.xlsx'); header('Cache-Control: max-age=1'); $objWriter->save('php://output'); exit; }else{ $y_m = date('Y-m',time()); $file_dir = "Excel/saleroom/{$y_m}"; if(!file_exists($file_dir)){ self::mkDir($file_dir); } $objWriter->save ( "{$file_dir}/{$fileName}.xls" ); exit(); } } public static function export_user($data,$fileName,$is_local) { set_time_limit(0); $objPHPExcel = new \PHPExcel(); $objPHPExcel->getActiveSheet()->SetCellValue('A1', '用户昵称'); //created_at_cn $objPHPExcel->getActiveSheet()->SetCellValue('B1', '用户手机号'); //order_no $objPHPExcel->getActiveSheet()->SetCellValue('C1', '性别'); //order_no $objPHPExcel->getActiveSheet()->SetCellValue('D1', '会员等级'); //supplier_name $objPHPExcel->getActiveSheet()->SetCellValue('E1', '账户余额'); //supplier_name $objPHPExcel->getActiveSheet()->SetCellValue('F1', '可提现余额'); //supplier_name $objPHPExcel->getActiveSheet()->SetCellValue('G1', '积分余额'); //supplier_name $objPHPExcel->getActiveSheet()->SetCellValue('H1', '上级用户'); //warehouse_name $objPHPExcel->getActiveSheet()->SetCellValue('I1', '上级手机号'); //warehouse_name $objPHPExcel->getActiveSheet()->SetCellValue('J1', '注册时间'); //warehouse_name $objPHPExcel->getActiveSheet()->SetCellValue('K1', '状态'); //warehouse_name //设置第一行的背景颜色 $objPHPExcel->getActiveSheet() ->getStyle('A1:K1') ->getFill() ->setFillType(\PHPExcel_Style_Fill::FILL_SOLID) ->getStartColor() ->setRGB('FFFF00'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(15); $i = 2; foreach($data as $key => $val){ $objPHPExcel->getActiveSheet()->SetCellValue('A'.$i, $data[$key]['nickname']); $objPHPExcel->getActiveSheet()->SetCellValue('B'.$i, $data[$key]['mobile_phone']); $objPHPExcel->getActiveSheet()->SetCellValue('C'.$i, $data[$key]['gender_cn']); $objPHPExcel->getActiveSheet()->SetCellValue('D'.$i, $data[$key]['level_name']); $objPHPExcel->getActiveSheet()->SetCellValue('E'.$i, $data[$key]['account_balance']); $objPHPExcel->getActiveSheet()->SetCellValue('F'.$i, $data[$key]['account_balance_with']); $objPHPExcel->getActiveSheet()->SetCellValue('G'.$i, $data[$key]['account_integral']); $objPHPExcel->getActiveSheet()->SetCellValue('H'.$i, $data[$key]['parent_name']); $objPHPExcel->getActiveSheet()->SetCellValue('I'.$i, $data[$key]['parent_mobile']); $objPHPExcel->getActiveSheet()->SetCellValue('J'.$i, $data[$key]['created_at_cn']); $objPHPExcel->getActiveSheet()->SetCellValue('K'.$i, $data[$key]['status_cn']); $i++; } $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); if(!$is_local){ ob_clean(); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="' . $fileName . '.xlsx'); header('Cache-Control: max-age=1'); $objWriter->save('php://output'); exit; }else{ $y_m = date('Y-m',time()); $file_dir = "Excel/saleroom/{$y_m}"; if(!file_exists($file_dir)){ self::mkDir($file_dir); } $objWriter->save ( "{$file_dir}/{$fileName}.xls" ); exit(); } } public static function order_search_export($data,$fileName,$is_local) { set_time_limit(0); $objPHPExcel = new \PHPExcel(); $objPHPExcel->getActiveSheet()->SetCellValue('A1', '用户昵称'); //created_at_cn $objPHPExcel->getActiveSheet()->SetCellValue('B1', '用户手机号'); //order_no $objPHPExcel->getActiveSheet()->SetCellValue('C1', '充值金额'); //order_no $objPHPExcel->getActiveSheet()->SetCellValue('D1', '状态'); //supplier_name $objPHPExcel->getActiveSheet()->SetCellValue('E1', '下单日期'); //supplier_name $objPHPExcel->getActiveSheet()->SetCellValue('F1', '支付日期'); //supplier_name //设置第一行的背景颜色 $objPHPExcel->getActiveSheet() ->getStyle('A1:F1') ->getFill() ->setFillType(\PHPExcel_Style_Fill::FILL_SOLID) ->getStartColor() ->setRGB('FFFF00'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(20); $i = 2; foreach($data as $key => $val){ $objPHPExcel->getActiveSheet()->SetCellValue('A'.$i, $data[$key]['nickname']); $objPHPExcel->getActiveSheet()->SetCellValue('B'.$i, $data[$key]['mobile_phone']); $objPHPExcel->getActiveSheet()->SetCellValue('C'.$i, $data[$key]['pay_price']); $objPHPExcel->getActiveSheet()->SetCellValue('D'.$i, $data[$key]['is_pay_cn']); $objPHPExcel->getActiveSheet()->SetCellValue('E'.$i, $data[$key]['created_at_cn']); $objPHPExcel->getActiveSheet()->SetCellValue('F'.$i, $data[$key]['pay_time_cn']); $i++; } $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); if(!$is_local){ ob_clean(); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="' . $fileName . '.xlsx'); header('Cache-Control: max-age=1'); $objWriter->save('php://output'); exit; }else{ $y_m = date('Y-m',time()); $file_dir = "Excel/saleroom/{$y_m}"; if(!file_exists($file_dir)){ self::mkDir($file_dir); } $objWriter->save ( "{$file_dir}/{$fileName}.xls" ); exit(); } } public static function search_export($data,$fileName,$is_local) { set_time_limit(0); $objPHPExcel = new \PHPExcel(); $objPHPExcel->getActiveSheet()->SetCellValue('A1', '用户昵称'); //created_at_cn $objPHPExcel->getActiveSheet()->SetCellValue('B1', '用户手机号'); //order_no $objPHPExcel->getActiveSheet()->SetCellValue('C1', '类型'); //order_no $objPHPExcel->getActiveSheet()->SetCellValue('D1', '金额'); //supplier_name $objPHPExcel->getActiveSheet()->SetCellValue('E1', '描述'); //supplier_name $objPHPExcel->getActiveSheet()->SetCellValue('F1', '订单类型'); //supplier_name $objPHPExcel->getActiveSheet()->SetCellValue('G1', '订单号'); //supplier_name $objPHPExcel->getActiveSheet()->SetCellValue('H1', '添加时间'); //supplier_name //设置第一行的背景颜色 $objPHPExcel->getActiveSheet() ->getStyle('A1:H1') ->getFill() ->setFillType(\PHPExcel_Style_Fill::FILL_SOLID) ->getStartColor() ->setRGB('FFFF00'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(40); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(10); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(35); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(10); $i = 2; foreach($data as $key => $val){ $objPHPExcel->getActiveSheet()->SetCellValue('A'.$i, $data[$key]['nickname']); $objPHPExcel->getActiveSheet()->SetCellValue('B'.$i, $data[$key]['mobile_phone']); $objPHPExcel->getActiveSheet()->SetCellValue('C'.$i, $data[$key]['type_cn']); $objPHPExcel->getActiveSheet()->SetCellValue('D'.$i, $data[$key]['money']); $objPHPExcel->getActiveSheet()->SetCellValue('E'.$i, $data[$key]['desc']); $objPHPExcel->getActiveSheet()->SetCellValue('F'.$i, $data[$key]['order_type_cn']); $objPHPExcel->getActiveSheet()->SetCellValue('G'.$i, $data[$key]['order_no']); $objPHPExcel->getActiveSheet()->SetCellValue('H'.$i, $data[$key]['created_at_cn']); $i++; } $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); if(!$is_local){ ob_clean(); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="' . $fileName . '.xlsx'); header('Cache-Control: max-age=1'); $objWriter->save('php://output'); exit; }else{ $y_m = date('Y-m',time()); $file_dir = "Excel/saleroom/{$y_m}"; if(!file_exists($file_dir)){ self::mkDir($file_dir); } $objWriter->save ( "{$file_dir}/{$fileName}.xls" ); exit(); } } }