如何在 Laravel 項目中處理 Excel 文件

本文經受權轉自 PHPHub 社區php

說明

maatwebsite/excel 是一款強大的 Excel 文件處理擴展包, 可以快速完成 Excel 文件的的導出, 解析等功能.laravel

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

文章的 DEMO 項目

截圖

運行

Demo 代碼請見:github

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

請參照此文檔運行 Demo:數組

https://phphub.org/topics/1902瀏覽器

文章概覽

  1. 安裝;緩存

  2. 基礎用法;微信

  3. 更多功能.app

接下來是詳細解說.

安裝

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

composer require maatwebsite/excel

2). 安裝完成後,修改 config/app.phpproviders 數組內追加以下內容

'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 內容見下圖:

<img src="http://7xrxcg.com1.z0.glb.clouddn.com/36d628e26b59530839f3e1c4230c918f.png" width="600">

更多功能

除了上述的解析/導出功能外, 此擴展包還支持:

  1. 解析指定表格裏的指定列;

  2. 格式化日期;

  3. 添加計算公式;

  4. 緩存表格;

  5. 批量解析指定目錄裏的全部 Excel 文件;

  6. 能夠作格式轉換, 如將 csv 轉換成 xls, 反之亦可;

  7. 能夠將 Excel 結合 blade 模板引擎進行渲染.

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


歡迎關注 LaravelTips, 一個專一於爲 Laravel 開發者服務, 致力於幫助開發者更好的掌握 Laravel 框架, 提高開發效率的微信公衆號.

相關文章
相關標籤/搜索