前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >laravel maatwebsite/excel3.1 导入详解

laravel maatwebsite/excel3.1 导入详解

作者头像
用户4973967
发布2021-02-04 11:07:26
2.4K0
发布2021-02-04 11:07:26
举报
文章被收录于专栏:胡六娃的博客胡六娃的博客

使用"maatwebsite/excel": "^3.1" 导入

官方文档地址

代码语言:javascript
复制
https://docs.laravel-excel.com/3.1/imports/batch-inserts.html

1.安装composer包

代码语言:javascript
复制
composer require maatwebsite/excel

2. 在 config/app.php 中注册服务提供者到 providers 数组:

代码语言:javascript
复制
Maatwebsite\Excel\ExcelServiceProvider::class,

3.在 config/app.php 中注册到 aliases 数组:

代码语言:javascript
复制
'Excel' => Maatwebsite\Excel\Facades\Excel::class,

4.生成 Laravel Excel 的配置文件:(发布)

代码语言:javascript
复制
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"

至此,完成了composer包的安装步骤

5.新建一个导入文件

代码语言:javascript
复制
php artisan make:import 文件名称 --model=Model地址

此操作会在app/下创建一个Import目录并创建一个文件

代码语言:javascript
复制
.
├── app
│   ├── Imports
│   │   ├── CompanyUserImport.php
│ 
└── composer.json

我这里需要导入的数据需要自己处理一下,所以使用的ToCollection的方法

app/Import/CompanyUserImport.php代码如下:

代码语言:javascript
复制
<?php

namespace App\Imports;

use App\Models\Company\CompanyUserModel;
use Maatwebsite\Excel\Concerns\ToCollection;
use Illuminate\Support\Collection;

class CompanyUserImport implements ToCollection
{
    /**
     * 使用 ToCollection
     * @param array $row
     *
     * @return User|null
     */
    public function collection(Collection $rows)
    {
        foreach ($rows as $row) 
        {
            // dump($row);
            // 处理数据
        }
        CompanyUserModelDB::insert($data);
    }

    public function createData($rows)
    {
        //todo
    }
}
    

控制器调用

代码语言:javascript
复制
<?php

namespace App\Http\Controllers\Company;


use Illuminate\Http\Request;
use App\Imports\CompanyUserImport;
use App\Http\Controllers\Controller;
use Maatwebsite\Excel\Facades\Excel;

class CompanyUserController extends Controller
{

    /**
     * excel批量导入成员
     *
     * @param Request $request
     * @return void
     */
    public function importMember(Request $request)
    {

        Excel::import(new CompanyUserImport, request()->file('excelfile'));
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-02-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档