getActiveSheet(); // 合并单元格A1到K1 $sheet->mergeCells('A1:J1'); $sheet->mergeCells('B2:E2'); $sheet->mergeCells('G2:J2'); $sheet->mergeCells('G3:J3'); $sheet->mergeCells('B3:E3'); $sheet->mergeCells('B4:C4'); $sheet->mergeCells('D4:E4'); $sheet->setCellValue('A1', $this->company.'公司送货单'); $sheet->setCellValue('A2', '店铺名称'); $sheet->setCellValue('B2', $system_store); $sheet->setCellValue('F2', '送货时间'); $sheet->setCellValue('A3', '开单日期'); $sheet->setCellValue('F3', '单号'); $sheet->setCellValue('A4', '序号'); $sheet->setCellValue('B4', '商品名称'); $sheet->setCellValue('D4', '规格'); $sheet->setCellValue('F4', '单位'); $sheet->setCellValue('G4', '单价'); $sheet->setCellValue('H4', '数量'); $sheet->setCellValue('I4', '总价'); $sheet->setCellValue('J4', '备注'); // 设置默认的单元格样式 $defaultStyle = [ 'alignment' => [ 'horizontal' => Alignment::HORIZONTAL_CENTER, 'vertical' => Alignment::VERTICAL_CENTER, ], ]; // 应用默认样式到整个工作表 $spreadsheet->getDefaultStyle()->applyFromArray($defaultStyle); foreach ($data as $k => $v) { $sheet->setCellValue('A' . ($k + 5), $k + 1); $sheet->setCellValue('B' . ($k + 5), $v['store_name']); $sheet->mergeCells('B' . ($k + 5) . ':C' . $k + 5); $sheet->setCellValue('D' . ($k + 5), $v['store_info']); $sheet->mergeCells('D' . ($k + 5) . ':E' . $k + 5); $sheet->setCellValue('F' . ($k + 5), $v['unit_name']); $sheet->setCellValue('G' . ($k + 5), $v['price']); $sheet->setCellValue('H' . ($k + 5), $v['cart_num']); $sheet->setCellValue('I' . ($k + 5), $v['total_price']); } $count = count($data); $sheet->mergeCells('A' . ($count + 5) . ':J' . $count + 5); $sheet->mergeCells('B' . ($count + 6) . ':E' . $count + 6); $sheet->setCellValue('A' . $count + 6, '合计数量'); $sheet->setCellValue('B' . $count + 6,$total_num); $sheet->mergeCells('G' . ($count + 6) . ':J' . $count + 6); $sheet->setCellValue('F' . $count + 6, '合计价格'); $sheet->setCellValue('G' . $count + 6, $total_price); $sheet->mergeCells('A' . ($count + 7) . ':J' . $count + 7); $sheet->mergeCells('A' . ($count + 8) . ':A' . $count + 9); $sheet->setCellValue('A' . ($count + 8), '销售单位'); $sheet->setCellValue('B' . ($count + 8), '名称'); $sheet->setCellValue('C' . ($count + 8), $this->company); $sheet->setCellValue('B' . ($count + 9), '地址'); $sheet->setCellValue('C' . ($count + 9), $this->address); $sheet->setCellValue('G' . ($count + 8), '公司电话'); $sheet->setCellValue('H' . ($count + 8), $this->phone); $sheet->setCellValue('G' . ($count + 9), '售后电话'); $sheet->setCellValue('H' . ($count + 9), $this->tel); $sheet->mergeCells('C' . ($count + 8) . ':F' . $count + 8); $sheet->mergeCells('C' . ($count + 9) . ':F' . $count + 9); $sheet->mergeCells('H' . ($count + 8) . ':J' . ($count + 8)); $sheet->mergeCells('H' . ($count + 9) . ':J' . $count + 9); $sheet->mergeCells('A' . ($count + 10) . ':J' . $count + 10); $sheet->setCellValue('A' . $count + 11, '仓库',); $sheet->setCellValue('B' . $count + 11, $this->warehouse); $sheet->mergeCells('B' . ($count + 11) . ':C' . $count + 11); $sheet->setCellValue('D' . $count + 11, '送货'); $sheet->mergeCells('E' . ($count + 11) . ':F' . $count + 11); $sheet->setCellValue('G' . $count + 11, '签收人'); $sheet->mergeCells('H' . ($count + 11) . ':J' . $count + 11); // 设置单元格的样式 $styleArray = [ 'font' => [ 'bold' => true, 'size' => 16, ], ]; $sheet->getStyle('A1')->applyFromArray($styleArray); // 定义线框样式 $styleArray = [ 'borders' => [ 'allBorders' => [ 'borderStyle' => Border::BORDER_THIN, // 线框样式 'color' => ['argb' => '000000'], // 线框颜色 ], ], ]; $sheet->getStyle('A1:J' . ($count + 11))->applyFromArray($styleArray); // 保存文件到 public 下 $writer = new Xlsx($spreadsheet); $file_path = public_path() . '/export/' . date('Y-m') . '/' . $system_store . '.xlsx'; // 保存文件到 public 下 $writer->save($file_path); return $file_path; } }