Browse Source

胡庆余堂

cqp 2 tháng trước cách đây
mục cha
commit
c6ac5cd881
1 tập tin đã thay đổi với 22 bổ sung15 xóa
  1. 22 15
      app/Exports/SingleSheetExport.php

+ 22 - 15
app/Exports/SingleSheetExport.php

@@ -55,37 +55,44 @@ class SingleSheetExport extends DefaultValueBinder implements FromCollection, Wi
         return parent::bindValue($cell, $value);
     }
 
-    /**
-     * 每页 Sheet 的样式
-     */
     public function styles(Worksheet $sheet)
     {
         $highestRow = $sheet->getHighestRow();
         $highestColumn = $sheet->getHighestColumn();
+        $fullRange = 'A1:' . $highestColumn . $highestRow;
 
-        // 1. 表头加粗、居中
-        $sheet->getStyle('A1:' . $highestColumn . '1')->applyFromArray([
+        // 1. 设置全表(表头+表体)统一样式
+        $sheet->getStyle($fullRange)->applyFromArray([
             'font' => [
-                'bold' => true,
-                'size' => 11,
+                'name' => '宋体',
+                'size' => 12,
+                'bold' => false,
             ],
             'alignment' => [
-                'horizontal' => Alignment::HORIZONTAL_CENTER,
                 'vertical' => Alignment::VERTICAL_CENTER,
+                'horizontal' => Alignment::HORIZONTAL_CENTER, // 设置全表水平居中
             ],
             'borders' => [
-                'bottom' => ['borderStyle' => Border::BORDER_THIN],
+                'allBorders' => [
+                    'borderStyle' => Border::BORDER_THIN, // 给所有单元格加上细边框(可选)
+                    'color' => ['argb' => '000000'],
+                ],
             ],
         ]);
 
-        // 2. 内容垂直居中
-        $sheet->getStyle('A2:' . $highestColumn . $highestRow)
-            ->getAlignment()
-            ->setVertical(Alignment::VERTICAL_CENTER);
+        // 2. 针对表头(第一行)的特殊处理
+        // 如果全表已经居中且不加粗,这里主要用于确保表头有别于表体的样式(例如设置背景色或更粗的底边框)
+        $sheet->getStyle('A1:' . $highestColumn . '1')->applyFromArray([
+            'borders' => [
+                'bottom' => [
+                    'borderStyle' => Border::BORDER_MEDIUM, // 表头底部稍微加粗
+                ],
+            ],
+        ]);
 
         // 3. 自动列宽
-        foreach (range('A', $highestColumn) as $col) {
-            $sheet->getColumnDimension($col)->setAutoSize(true);
+        foreach ($sheet->getColumnIterator() as $column) {
+            $sheet->getColumnDimension($column->getColumnIndex())->setAutoSize(true);
         }
 
         return [];