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

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

          聊聊Laravel Excel 的五個(gè)鮮為人知的功能

          聊聊Laravel Excel 的五個(gè)鮮為人知的功能

          Laravel Excel package 最近發(fā)布了 3.0 版本,它所具有的新功能,可以幫助簡(jiǎn)化高級(jí)需求,并且可用性極高。大家一起來探討一下可能不知道的一些隱藏功能,這些功能使 Laravel Excel 成為 Excel 拓展的最佳首選。

          1. 從 HTML 或者是 Blade 導(dǎo)入數(shù)據(jù)

          假設(shè)已經(jīng)有一個(gè) HTML 表格

          聊聊Laravel Excel 的五個(gè)鮮為人知的功能

          模版代碼 — resources/views/customers/table.blade.php:

          <table class="table">     <thead>     <tr>         <th></th>         <th>First name</th>         <th>Last name</th>         <th>Email</th>         <th>Created at</th>         <th>Updated at</th>     </tr>     </thead>     <tbody>     @foreach ($customers as $customer)     <tr>         <td>{{ $customer->id }}</td>         <td>{{ $customer->first_name }}</td>         <td>{{ $customer->last_name }}</td>         <td>{{ $customer->email }}</td>         <td>{{ $customer->created_at }}</td>         <td>{{ $customer->updated_at }}</td>     </tr>     @endforeach     </tbody> </table>
          登錄后復(fù)制

          你可以使用它去重復(fù)導(dǎo)入這個(gè)表格到 Excel

          步驟1. 生成一個(gè) Export 類

          php artisan make:export CustomersFromView --model=Customer
          登錄后復(fù)制

          步驟2. 使用 FromView 進(jìn)行操作

          namespace AppExports;  use AppCustomer; use IlluminateContractsViewView; use MaatwebsiteExcelConcernsFromView;  class CustomersExportView implements FromView {     public function view(): View     {         return view('customers.table', [             'customers' => Customer::orderBy('id', 'desc')->take(100)->get()         ]);     } }
          登錄后復(fù)制

          這里是導(dǎo)入的 Excel 文件:

          聊聊Laravel Excel 的五個(gè)鮮為人知的功能

          注意:這里只能導(dǎo)出 HTML 表格,不能具有任何標(biāo)簽,比如 html,body,div 等。


          2. 導(dǎo)出到 PDF,HTML,或是其他格式的文件

          雖然包的名稱是 Laravel Excel,但是提供了多種導(dǎo)出格式,并且使用起來十分簡(jiǎn)單,只要在類里再添加一個(gè)參數(shù)即可:

          return Excel::download(new CustomersExport(), 'customers.xlsx', 'Html');
          登錄后復(fù)制

          比如這么做,就導(dǎo)出到了HTML,如下圖所示:

          聊聊Laravel Excel 的五個(gè)鮮為人知的功能

          沒有太多的樣式,下面是源代碼:

          聊聊Laravel Excel 的五個(gè)鮮為人知的功能

          不僅如此,它還可以導(dǎo)出到 PDF,甚至你可以從中選擇三種庫,使用方法是一樣的,你只要在最后一個(gè)參數(shù)指定格式就好了,下面是一些例子。 文檔示例:

          聊聊Laravel Excel 的五個(gè)鮮為人知的功能

          注意:你必須通過 composer 安裝指定的 PDF 包,比如:

          composer require dompdf/dompdf
          登錄后復(fù)制

          導(dǎo)出的 PDF 如下所示:

          聊聊Laravel Excel 的五個(gè)鮮為人知的功能


          3. 按需格式化單元格

          Laravel Excel 有一個(gè)強(qiáng)有力的「爸爸」 — PhpSpreadsheet。因此它就擁有其各種底層功能,包括各種方式的單元格格式化。

          此處是一個(gè)如何在 Laravel Export 類中使用它的例子,例如 app/Exports/CustomersExportStyling.php:

          步驟 1. 在頭部引入適當(dāng)?shù)念悺?/p>

          use MaatwebsiteExcelConcernsWithEvents; use MaatwebsiteExcelEventsAfterSheet;
          登錄后復(fù)制

          步驟 2. 在 implements 部分使用 WithEvents 接口。

          class CustomersExportStyling implements FromCollection, WithEvents {     // ...
          登錄后復(fù)制

          步驟 3. 用 AfterSheet 事件來創(chuàng)建 registerEvents() 方法。

          /**  * @return array  */ public function registerEvents(): array {     return [         AfterSheet::class    => function(AfterSheet $event) {             // ... 此處你可以任意格式化         },     ]; }
          登錄后復(fù)制

          這里有個(gè)例子:

          /**  * @return array  */ public function registerEvents(): array {     return [         AfterSheet::class    => function(AfterSheet $event) {             // 所有表頭-設(shè)置字體為14             $cellRange = 'A1:W1';             $event->sheet->getDelegate()->getStyle($cellRange)->getFont()->setSize(14);              // 將樣式數(shù)組應(yīng)用于B2:G8范圍單元格             $styleArray = [                 'borders' => [                     'outline' => [                         'borderStyle' => PhpOfficePhpSpreadsheetStyleBorder::BORDER_THICK,                         'color' => ['argb' => 'FFFF0000'],                     ]                 ]             ];             $event->sheet->getDelegate()->getStyle('B2:G8')->applyFromArray($styleArray);              // 將第一行行高設(shè)置為20             $event->sheet->getDelegate()->getRowDimension(1)->setRowHeight(20);              // 設(shè)置 A1:D4 范圍內(nèi)文本自動(dòng)換行             $event->sheet->getDelegate()->getStyle('A1:D4')                 ->getAlignment()->setWrapText(true);         },     ]; }
          登錄后復(fù)制

          這些「隨機(jī)」樣例展示的結(jié)果如下所示:

          聊聊Laravel Excel 的五個(gè)鮮為人知的功能

          你可以在 Recipes page of PhpSpreadsheet docs中找到所有的以上以及

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