Laravel Maatwebsite 导入Excel

use Maatwebsite\Excel\Facades\Excel;
use App\Imports\XXImport;

$filePath = 'xxx.xlsx'; 
//$filePath 根据 config/filesystems.php文件中配置找到文件
Excel::import($import,$filePath,null,\Maatwebsite\Excel\Excel::XLSX);

XXImport 

<?php


namespace App\Imports;


use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;


class XXImport implements  ToCollection
{

    public function collection(Collection $rows){
        //如果需要去除表头
        unset($rows[0]);
        //$rows 是数组格式
        $this->createData($rows);
    }

    public function createData($rows)
    {
        //to do
        foreach ($rows as $row){
            $id = $row[0];
           
        }
    }

}

 

Laravel导入 Excel 文件,可以使用 Laravel Excel 包。下面是一些基本步骤: 1. 安装 Laravel Excel 包: ``` composer require maatwebsite/excel ``` 2. 创建一个 Excel 导入类: ``` php artisan make:import UsersImport --model=User ``` 3. 在 `UsersImport` 类中实现 `map` 和 `rules` 方法: ```php <?php namespace App\Imports; use App\Models\User; use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithHeadingRow; class UsersImport implements ToModel, WithHeadingRow { public function model(array $row) { return new User([ 'name' => $row['name'], 'email' => $row['email'], 'password' => Hash::make($row['password']), ]); } public function rules(): array { return [ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users,email', 'password' => 'required|string|min:6', ]; } } ``` 4. 在控制器中使用 `Excel` 类导入 Excel 文件: ```php <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Maatwebsite\Excel\Facades\Excel; use App\Imports\UsersImport; class UserController extends Controller { public function import(Request $request) { $file = $request->file('file'); Excel::import(new UsersImport, $file); return redirect()->back()->with('success', 'Users imported successfully.'); } } ``` 5. 在路由中定义导入 Excel 文件的路由: ```php Route::post('/users/import', [UserController::class, 'import'])->name('users.import'); ``` 6. 创建一个表单,上传 Excel 文件: ```html <form method="POST" action="{{ route('users.import') }}" enctype="multipart/form-data"> @csrf <div class="form-group"> <label for="file">Choose file</label> <input type="file" name="file" class="form-control-file" id="file"> </div> <button type="submit" class="btn btn-primary">Import</button> </form> ``` 这样就可以在 Laravel导入 Excel 文件了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值