getActiveSheet(); $sheet->setTitle('调拨订单'); // 设置列宽 $sheet->getDefaultRowDimension()->setRowHeight(20); // 设置行高 $sheet->getDefaultColumnDimension()->setWidth(20); // 设置列宽 $sheet->getPageSetup()->setFitToPage(true); // 自动适应页面大小 $sheet->getPageSetup()->setHorizontalCentered(true); // 页面水平居中 $sheet->getPageSetup()->setVerticalCentered(true); // 页面垂直居中 $sheet->getPageMargins()->setTop(0.5); // 上边距 $sheet->getPageMargins()->setBottom(0.5); // 下边距 $sheet->getPageMargins()->setLeft(0.5); // 左边距 $sheet->getPageMargins()->setRight(0.5); // 右边距 $sheet->getPageMargins()->setHeader(0.5); // 页眉边距 $sheet->getPageMargins()->setFooter(0.5); // 页脚边距 $sheet->getStyle('A1:H1')->getFont()->setBold(true); // 设置标题字体加粗 $sheet->getStyle('A1:H1')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER); // 设置标题水平居中 $sheet->getStyle('A1:H1')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER); // 设置标题垂直居中 $sheet->getStyle('A2:H2')->getFont()->setBold(true); // 设置标题字体加粗 $sheet->getStyle('A2:H2')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER); // 设置标题水平居中 // 合并单元格并设置标题 $sheet->mergeCells('A1:G1')->setCellValue('A1', '调拨订单'); $sheet->setCellValue('A2', '订单编号'); $sheet->setCellValue('B2', '转出方'); $sheet->setCellValue('C2', '方式'); $sheet->setCellValue('D2', '转入方'); $sheet->setCellValue('E2', '商品'); $sheet->setCellValue('F2', '数量'); $sheet->setCellValue('G2', '备注'); $sheet->setCellValue('H2', '创建时间'); // 设置列宽 $sheet->getColumnDimension('A')->setAutoSize(true); $sheet->getColumnDimension('B')->setAutoSize(true); $sheet->getColumnDimension('C')->setWidth(20); $sheet->getColumnDimension('D')->setWidth(20); $sheet->getColumnDimension('E')->setAutoSize(true); $sheet->getColumnDimension('F')->setAutoSize(true); $sheet->getColumnDimension('G')->setAutoSize(true); $sheet->getColumnDimension('H')->setAutoSize(true); // 设置默认的单元格样式 $defaultStyle = [ 'alignment' => [ 'horizontal' => Alignment::HORIZONTAL_CENTER, 'vertical' => Alignment::VERTICAL_CENTER, ], ]; $spreadsheet->getDefaultStyle()->applyFromArray($defaultStyle); // 写入数据 $row = 3; foreach ($data as $item) { $sheet->setCellValue('A' . $row, $order['order_id']) ->setCellValue('B' . $row, $order['one_name']) ->setCellValue('C' . $row, $order['type_name']) ->setCellValue('D' . $row, $order['two_name']) ->setCellValue('E' . $row, $item['store_name']) ->setCellValue('F' . $row, $item['nums']) ->setCellValue('G' . $row, $item['remark']) ->setCellValue('H' . $row, $item['create_time']); $row++; } $count = count($data); // 应用默认样式到整个工作表 // 设置单元格的样式 $styleArray = [ 'font' => [ 'bold' => true, 'size' => 16, ], ]; $sheet->getStyle('A1')->applyFromArray($styleArray); // 定义线框样式 $styleArray = [ 'borders' => [ 'allBorders' => [ 'borderStyle' => Border::BORDER_THIN, // 线框样式 'color' => ['argb' => '000000'], // 线框颜色 ], ], ]; $sheet->getStyle('A1:H' . ($count + 2))->applyFromArray($styleArray); // 保存文件到 public 下 $writer = new Xlsx($spreadsheet); $url = '/export/' . "调拨订单-" . date('YmdHi') . '.xlsx'; $file_path = public_path() . $url; if (!is_dir(dirname($file_path))) { mkdir(dirname($file_path), 0777, true); } $writer->save($file_path); return getenv('APP_URL') . $url; } }