欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          Laravel Excel3.0如何導(dǎo)出

          下面由Laravel教程欄目給大家介紹Laravel Excel3.0導(dǎo)出方法,希望對需要的朋友有所幫助!

          導(dǎo)出方法抽離:

          <?php namespace AppExports; use MaatwebsiteExcelConcernsFromCollection; use MaatwebsiteExcelConcernsShouldAutoSize; use MaatwebsiteExcelConcernsWithColumnFormatting; use MaatwebsiteExcelConcernsWithCustomValueBinder; use MaatwebsiteExcelConcernsWithEvents; use MaatwebsiteExcelConcernsWithStrictNullComparison; use MaatwebsiteExcelEventsAfterSheet; use PhpOfficePhpSpreadsheetCellStringValueBinder; use PhpOfficePhpSpreadsheetStyleNumberFormat;  class Export extends StringValueBinder implements FromCollection,     ShouldAutoSize,WithColumnFormatting,WithCustomValueBinder,WithStrictNullComparison,WithEvents {     private $row;     private $data;     private $mergeCell;     private $columnName;     private $formatNumber;      /*      * $mergeCell $columnName :合并單元格所需參數(shù);      * $mergeCell 需要合并的位置數(shù)組以MAP形式存儲 [開始行=>結(jié)束行]      * $columnName 需要合并列 與合并行數(shù)結(jié)合使用ARRAY存儲 ['A','B']      */     public function __construct($row,$data,$mergeCell=null,$columnName=null,$formatNumber=[])     {         $this->row = $row;         $this->data = $data;         $this->mergeCell = $mergeCell;         $this->columnName = $columnName;         $this->formatNumber = $formatNumber;     }      public function collection()     {         $row = $this->row;         $data = $this->data;  //設(shè)置表頭         foreach ($row[0] as $key => $value) {             $key_arr[] = $key;         }  //輸入數(shù)據(jù)         foreach ($data as $key => &$value) {             $js = [];             for ($i=0; $i < count($key_arr); $i++) {                 $js = array_merge($js,[ $key_arr[$i] => $value[ $key_arr[$i] ] ]);             }             array_push($row, $js);             unset($val);         }         return collect($row);     }     public function registerEvents(): array     {         // TODO: Implement registerEvents() method.         if ($this->mergeCell && $this->columnName){             return [                 AfterSheet::class => function(AfterSheet $event){                     foreach ($this->columnName as $column){                         foreach ($this->mergeCell as $key=>$value){                             $event->sheet->getDelegate()->mergeCells($column.$key.':'.$column.$value);                         }                     }                 }             ];         }         return [];     }      public function columnFormats(): array{         $formatNumber = [];         foreach ($this->formatNumber as $column){             $formatNumber[$column] = NumberFormat::FORMAT_TEXT;         }         return $formatNumber;     } }

          使用:

          /*表頭表體都為二維數(shù)組*/ $row=[['row1'=>'列1','row2'=>'列2']]; /*與表頭key對應(yīng),缺少數(shù)據(jù)報錯*/ $list=[['row1'=>'行1列1','row2'=>'行1列2'],['row1'=>'行2列1','row2'=>'行2列2']]; /*將第一行到第三行,第五行到第七行的A,B,C列各自合并*/ $mergeCell=[1=>3,5=>7]; $columnName=["A","B","C"]; /*數(shù)字過長的列轉(zhuǎn)換格式防止科學(xué)計數(shù)*/ $formatNumber=['A','B','C']; //上方A,B,C列都為示意,根據(jù)自己需求調(diào)整,對應(yīng)EXCEL的列 return Excel::download(new Export($row,$list,$mergeCell,$columnName,$formatNumber),'fileName');

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號