這篇文章主要介紹了Laravel Excel3.0導(dǎo)出的方法,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
成都一家集口碑和實(shí)力的網(wǎng)站建設(shè)服務(wù)商,擁有專業(yè)的企業(yè)建站團(tuán)隊(duì)和靠譜的建站技術(shù),十年企業(yè)及個人網(wǎng)站建設(shè)經(jīng)驗(yàn) ,為成都1000多家客戶提供網(wǎng)頁設(shè)計(jì)制作,網(wǎng)站開發(fā),企業(yè)網(wǎng)站制作建設(shè)等服務(wù),包括成都營銷型網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),同時(shí)也為不同行業(yè)的客戶提供成都網(wǎng)站制作、網(wǎng)站建設(shè)的服務(wù),包括成都電商型網(wǎng)站制作建設(shè),裝修行業(yè)網(wǎng)站制作建設(shè),傳統(tǒng)機(jī)械行業(yè)網(wǎng)站建設(shè),傳統(tǒng)農(nóng)業(yè)行業(yè)網(wǎng)站制作建設(shè)。在成都做網(wǎng)站,選網(wǎng)站制作建設(shè)服務(wù)商就選創(chuàng)新互聯(lián)建站。
導(dǎo)出方法抽離:
<?php namespace App\Exports; use Maatwebsite\Excel\Concerns\FromCollection; use Maatwebsite\Excel\Concerns\ShouldAutoSize; use Maatwebsite\Excel\Concerns\WithColumnFormatting; use Maatwebsite\Excel\Concerns\WithCustomValueBinder; use Maatwebsite\Excel\Concerns\WithEvents; use Maatwebsite\Excel\Concerns\WithStrictNullComparison; use Maatwebsite\Excel\Events\AfterSheet; use PhpOffice\PhpSpreadsheet\Cell\StringValueBinder; use PhpOffice\PhpSpreadsheet\Style\NumberFormat; 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ù)報(bào)錯*/ $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é)計(jì)數(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');
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享Laravel Excel3.0導(dǎo)出的方法內(nèi)容對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!
名稱欄目:LaravelExcel3.0導(dǎo)出的方法
網(wǎng)站鏈接:http://muchs.cn/article30/ijsdpo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站策劃、電子商務(wù)、建站公司、虛擬主機(jī)、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)