日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Maatwebsite/excel的简单使用

發布時間:2024/1/1 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Maatwebsite/excel的简单使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Laravel Excel 官網地址

安裝

要求

安裝前必須確認以下要求

  • PHP: ^ 7.2|^8.0
  • Composer: ^2.*
  • Laravel: ^5.8
  • PhpSpreadsheet: ^1.15
  • php_zip啟用PHP擴展
  • php_xml啟用PHP擴展
  • php_gd2啟用PHP擴展
  • php_iconv啟用PHP擴展
  • php_simplexml啟用PHP擴展
  • php_xmlreader啟用PHP擴展
  • php_zlib啟用PHP擴展

安裝

進入項目根目錄

cd {project_path} # 默認安裝最新版本 composer require maatwebsite/excel

Maatwebsite\Excel\ExcelServiceProvider是自動發現并默認注冊。

如果要自己注冊,請在config/app.php以下位置添加ServiceProvider :

'providers' => [/** Package Service Providers...*/Maatwebsite\Excel\ExcelServiceProvider::class, ]

Excel facade 也是自動發現。

如果要手動添加,請在中添加外觀config/app.php:

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

要發布配置,請運行provider的發布命令:

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

這將創建一個名為的新配置文件config/excel.php。

快速導出

創建一個Excel類

可以通過make:export 創建Excel命名空間及對應的Excel處理類.

php artisan make:export EnrollExport--model=Volunteer

執行命令后會創建以下文件

├── app │ ├── Exports │ │ ├── EnrollExport.php │ └── composer.json

生成導出內容

在EnrollExport.php 是所有導出文件的處理,數據處理、單元格樣式等等
根據下列的情況EnrollExport需要繼承不同的接口,如果不繼承則對應的設置不會生效

  • 從Eloquent ORM中導入數據,繼承FromCollection
  • 調整列寬,繼承WithColumnWidths
  • 調整樣式,繼承WithStyles
<?phpnamespace App\Exports;use App\Models\ActivityEnrollLog; use Maatwebsite\Excel\Concerns\FromCollection; use Maatwebsite\Excel\Concerns\WithColumnWidths; use Maatwebsite\Excel\Concerns\WithStyles; use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;class EnrollExport implements FromCollection, WithColumnWidths, WithStyles {public $data;//需要導出的數據public function __construct($data) {$this->data = $data;}/*** 組合表頭和數據* @return \Illuminate\Support\Collection* @author wanghongrui 20210330*/public function collection(){$collect = collect([]);$thead = collect(['志愿者編號','姓名','電話','活動名稱','報名時間','取消時間','報名狀態']);$collect->push($thead);foreach ($this->data as $d) {$rowData = collect([$d->volunteer->v_number,$d->volunteer->name,$d->volunteer->phone,$d->activity->active_name,$d->enroll_time,$d->cancel_time,$d->status_str,]);$collect->push($rowData);}return $collect;}/*** 設置列寬** @return array* @author wanghongrui 20210330*/public function columnWidths(): array{return ['A' => 15, 'B' => 20, 'C' => 30, 'D' => 50, 'E' => 20, 'F' => 20, 'G' => 10,];}/*** 格式化列* @return array*/ // public function columnFormats(): array // { // $format = NumberFormat::FORMAT_NUMBER_00;//金額保留兩位小數 // return ['G' => $format, 'H' => $format, 'I' => $format, 'J' => $format, 'K' => $format]; // }/*** 單元格樣式設置** @param Worksheet $sheet* @author wanghongrui 20210330*/public function styles(Worksheet $sheet){$sheet->getDefaultRowDimension()->setRowHeight(22);//設置行高$sheet->getStyle('A1:G'.($this->data->count()+1))->getAlignment()->setVertical('center');//垂直居中$sheet->getStyle('A1:G'.($this->data->count()+1))->applyFromArray(['alignment' => ['horizontal' => 'center']]);//設置水平居中} }

下載導出文件

生成的導出文件直接通過Excel::download()進行下載

return Excel::download(new EnrollExport($data), '志愿者報名信息表.xlsx');

.

總結

以上是生活随笔為你收集整理的Maatwebsite/excel的简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。