如何在 Laravel 項目中處理 Excel 檔案

來源:互聯網
上載者:User

本文經授權轉自 PHPHub 社區

說明

maatwebsite/excel 是一款強大的 Excel 檔案處理擴充包, 能夠快速完成 Excel 檔案的的匯出, 解析等功能.

本項目由 The EST Group 團隊成員 @monkey 整理髮布, 首發地為 PHPHub 社區.

文章的 DEMO 項目

運行

Demo 代碼請見:

https://github.com/zhengjinghua/est-excel-demo

請參照此文檔運行 Demo:

https://phphub.org/topics/1902

文章概覽

  1. 安裝;
  2. 基礎用法;
  3. 更多功能.

接下來是詳細解說.

安裝

1). 使用 Composer 安裝該擴充包:

composer require maatwebsite/excel

2). 安裝完成後,修改 config/app.php 在 providers 數組內追加如下內容

'providers' => [    ...    Maatwebsite\Excel\ExcelServiceProvider::class,],

3). 同時在 aliases 數組內追加如下內容:

'aliases' => [    ...    'Excel' => Maatwebsite\Excel\Facades\Excel::class,]

4). 接下來運行以下命令產生此擴充包的設定檔 config/excel.php:

php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"

預設配置基本能通用大部分的項目開發需求, 因此本文不對此設定檔做過多敘述, 想深入研究的童鞋可以閱讀官方文檔.

到此, 此拓展包即安裝成功 :beers?beers:

基礎用法

解析 Excel 檔案

# $excel_file_path = 你的 Excel 檔案存放地址$excel_data = Excel::load($excel_file_path, function($reader) {    $excel_data = Excel::load($excel_file_path)->get()->toArray();    // 直接列印內容即可看到效果    echo 'job.xlsx 表格內容為:';    dd($excel_data);});

將資料導成 Excel 檔案

// 匯出 Excel 並能直接在瀏覽器下載# $export_file_name = 要產生的檔案名稱Excel::create($export_file_name, function ($excel) {    $excel->sheet('Sheetname', function ($sheet) {        $sheet->appendRow(['data 1', 'data 2']);        $sheet->appendRow(['data 3', 'data 4']);        $sheet->appendRow(['data 5', 'data 6']);    });})->download('xls');// 匯出 Excel 並儲存到指定目錄Excel::create($export_file_name, function ($excel) {    $excel->sheet('Sheetname', function ($sheet) {        $sheet->appendRow(['data 1', 'data 2']);        $sheet->appendRow(['data 3', 'data 4']);        $sheet->appendRow(['data 5', 'data 6']);    });})->store('xls', $object_path);

匯出的 Excel 內容見:

更多功能

除了上述的解析/匯出功能外, 此擴充包還支援:

  1. 解析指定表格裡的指定列;
  2. 格式化日期;
  3. 添加計算公式;
  4. 緩衝表格;
  5. 批量解析指定目錄裡的所有 Excel 檔案;
  6. 可以做格式轉換, 如將 csv 轉換成 xls, 反之亦可;
  7. 可以將 Excel 結合 blade 模板引擎進行渲染.

這些更多的用例請移步 官方文檔 參考.

歡迎關注 LaravelTips, 一個專註於為 Laravel 開發人員服務, 致力於協助開發人員更好的掌握 Laravel 架構, 提升開發效率的公眾號.

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.