mainId) == false || $refund->mainId != $mainId) { util::fail('没有权限'); } } //导出数据 ssh 20240910 public static function exportRefundData($respond, $mainId) { $refundList = $respond['list'] ?? []; if (empty($refundList)) { util::fail('没有数据'); } $orderSnList = array_column($refundList, 'refundSn'); $refundItemData = CgRefundItemClass::getAllByCondition(['refundSn' => ['in', $orderSnList]], null, '*'); $refundItemList = []; if (!empty($refundItemData)) { foreach ($refundItemData as $itemInfo) { $orderSn = $itemInfo['refundSn'] ?? ''; $refundItemList[$orderSn][] = $itemInfo; } } foreach ($refundList as $key => $refundInfo) { $orderSn = $refundInfo['refundSn'] ?? ''; $itemList = $refundItemList[$orderSn] ?? []; $refundList[$key]['itemList'] = $itemList; } $phpExcelFile = Yii::getAlias("@vendor/phpoffice/phpexcel/"); require_once($phpExcelFile . 'Classes/PHPExcel.php'); $objPHPExcel = new \PHPExcel(); $objPHPExcel->getProperties()->setCreator("Maarten Balliauw") ->setLastModifiedBy("Maarten Balliauw") ->setTitle("Office 2007 XLSX Document") ->setSubject("Office 2007 XLSX Document") ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") ->setKeywords("office 2007 openxml php") ->setCategory("file"); $ghsTitle = '供货商'; $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader(date('n月j日') . " " . $ghsTitle); $objPHPExcel->getActiveSheet()->getPageMargins()->setTop(0.7); $objPHPExcel->getActiveSheet()->getPageMargins()->setBottom(0.1); $objPHPExcel->getActiveSheet()->getPageMargins()->setLeft(0.5); $objPHPExcel->getActiveSheet()->getPageMargins()->setRight(0); $objPHPExcel->getActiveSheet()->getPageMargins()->setHeader(0.1); $objPHPExcel->getActiveSheet()->getPageMargins()->setFooter(0); $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', '花材ID'); $objPHPExcel->getActiveSheet()->setCellValue('M1', '花材名称'); $objPHPExcel->getActiveSheet()->setCellValue('N1', '单价'); $objPHPExcel->getActiveSheet()->setCellValue('O1', '数量'); $objPHPExcel->getActiveSheet()->setCellValue('P1', '金额'); //设置宽度 $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(16); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(16); $objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(20); $objPHPExcel->getActiveSheet()->getColumnDimension('P')->setWidth(20); //加粗 $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('C1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('D1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('E1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('F1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('G1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('H1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('I1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('J1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('K1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('L1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('M1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('N1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('O1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('P1')->getFont()->setSize(9)->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('B1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('C1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('E1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('F1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('G1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('H1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('I1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('J1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('K1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('L1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('M1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('N1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('O1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('P1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('B1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('C1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('E1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('F1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('G1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('H1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('I1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('J1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('K1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('L1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('M1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('N1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('O1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('P1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $baseRow = 2; $x = 0; foreach ($refundList as $key => $orderData) { $currentList = $orderData['itemList'] ?? []; $statusName = '待审核'; if ($orderData['status'] == 1) { $statusName = '已通过'; } $refundTypeName = $orderData['refundType'] == 1 ? '退货并退款' : '仅退款'; if (!empty($currentList)) { foreach ($currentList as $k => $refundInfo) { $i = $baseRow + $x; $x++; $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $orderData['refundSn']); $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $orderData['orderTime']); $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, $orderData['relateOrderSn']); $objPHPExcel->getActiveSheet()->setCellValue('D' . $i, $orderData['ghsName']); $objPHPExcel->getActiveSheet()->setCellValue('E' . $i, $orderData['refundPrice']); $objPHPExcel->getActiveSheet()->setCellValue('F' . $i, $refundTypeName); $objPHPExcel->getActiveSheet()->setCellValue('G' . $i, $orderData['shopAdminName']); $objPHPExcel->getActiveSheet()->setCellValue('H' . $i, $orderData['remark']); $objPHPExcel->getActiveSheet()->setCellValue('I' . $i, $statusName); $objPHPExcel->getActiveSheet()->setCellValue('J' . $i, $orderData['addTime']); $objPHPExcel->getActiveSheet()->setCellValue('K' . $i, $orderData['passTime']); $objPHPExcel->getActiveSheet()->setCellValue('L' . $i, $refundInfo['itemId']); $objPHPExcel->getActiveSheet()->setCellValue('M' . $i, $refundInfo['name']); $objPHPExcel->getActiveSheet()->setCellValue('N' . $i, $refundInfo['unitPrice']); $objPHPExcel->getActiveSheet()->setCellValue('O' . $i, $refundInfo['num']); $objPHPExcel->getActiveSheet()->setCellValue('P' . $i, $refundInfo['price']); //居左 $objPHPExcel->getActiveSheet()->getStyle('A' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('B' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('C' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('D' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('E' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('F' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('G' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('H' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('I' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('J' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('K' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('L' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('M' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('N' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('O' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('P' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); } } else { $i = $baseRow + $x; $x++; $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $orderData['refundSn']); $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $orderData['orderTime']); $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, $orderData['relateOrderSn']); $objPHPExcel->getActiveSheet()->setCellValue('D' . $i, $orderData['ghsName']); $objPHPExcel->getActiveSheet()->setCellValue('E' . $i, $orderData['refundPrice']); $objPHPExcel->getActiveSheet()->setCellValue('F' . $i, $refundTypeName); $objPHPExcel->getActiveSheet()->setCellValue('G' . $i, $orderData['shopAdminName']); $objPHPExcel->getActiveSheet()->setCellValue('H' . $i, $orderData['remark']); $objPHPExcel->getActiveSheet()->setCellValue('I' . $i, $statusName); $objPHPExcel->getActiveSheet()->setCellValue('J' . $i, $orderData['addTime']); $objPHPExcel->getActiveSheet()->setCellValue('K' . $i, $orderData['passTime']); $objPHPExcel->getActiveSheet()->setCellValue('L' . $i, ''); $objPHPExcel->getActiveSheet()->setCellValue('M' . $i, ''); $objPHPExcel->getActiveSheet()->setCellValue('N' . $i, ''); $objPHPExcel->getActiveSheet()->setCellValue('O' . $i, ''); $objPHPExcel->getActiveSheet()->setCellValue('P' . $i, ''); //居左 $objPHPExcel->getActiveSheet()->getStyle('A' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('B' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('C' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('D' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('E' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('F' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('G' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('H' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('I' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('J' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('K' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('L' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('M' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('N' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('O' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('P' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); } } $fileName = '采购单-售后记录-' . time(); $objPHPExcel->getActiveSheet()->setTitle($fileName); $objPHPExcel->setActiveSheetIndex(0); $dir = './priceTable/' . $mainId; if (file_exists($dir) == false) { mkdir($dir, 0777, true); } $date = $fileName; $file = $date . '.xls'; $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); if (file_exists($dir . '/' . $file)) { unlink($dir . '/' . $file); } $objWriter->save($dir . '/' . $file); $fileUrl = Yii::$app->params['ghsHost'] . '/priceTable/' . $mainId . '/' . $file; util::success(['file' => $fileUrl, 'shortFile' => $file]); } }