当前位置: 首页 > news >正文

Laravel - excel 导入数据

在Laravel中,可以使用maatwebsite/excel这个库来处理Excel文件的导入。

1.用命令行窗口打开项目根目录,使用 Composer 安装 maatwebsite/excel

composer require maatwebsite/excel --ignore-platform-reqs

在你的config/app.php文件中注册服务提供者(可选)

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

注册门面(Facade)(可选)

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

 

2. 使用php artisan make:import命令创建一个新的导入类

php artisan make:import UsersImport --model=User

这将会生成一个新的Import类UsersImport,并且已经引入了你需要的User模型。

在生成的UsersImport类中,你需要定义collection方法来处理导入的数据集合,以及model方法来处理单个模型的导入。这里是一个简单的例子:

// app/Imports/UsersImport.phpnamespace App\Imports;use App\Models\User;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\Importable;class UsersImport implements ToModel
{use Importable;public function model(array $row){return new User(['name'     => $row[0],'email'    => $row[1],'password' => \Hash::make($row[2]),]);}
}

 3.在控制器中,添加一个方法来处理文件上传,并且调用导入。

// app/Http/Controllers/UserController.phpnamespace App\Http\Controllers;use App\Imports\UsersImport;
use Illuminate\Http\Request;class UserController extends Controller
{public function import(Request $request){$request->validate(['file' => 'required|file|mimes:xls,xlsx']);$file = $request->file('file');$import = new UsersImport();$import->import($file);return "Users imported successfully.";}
}

 4.定义路由

// routes/web.phpuse App\Http\Controllers\UserController;Route::post('/users/import', [UserController::class, 'import'])->name('users.import');

5.确保表单有enctype="multipart/form-data"属性,以便正确上传文件。

<form action="{{ route('users.import') }}" method="POST" enctype="multipart/form-data">@csrf<input type="file" name="file"><button type="submit">Import</button>
</form>

 

 

http://www.lryc.cn/news/378275.html

相关文章:

  • 移动语义和完美转发
  • 【IDEA】Spring项目build失败
  • 【无标题】安卓app 流量
  • 国产化ETL产品必备的特性(非开源包装)
  • flink 操作mongodb的例子
  • 【笔记】打卡01 | 初学入门
  • Rocky9使用cockpitweb登陆时root用户无法登陆
  • 微信小程序修改标题
  • Linux MySQL服务设置开机自启动
  • MacOS设备远程登录配置结合内网穿透实现异地ssh远程连接
  • 国有企业如何提高人效比?
  • Leetcode - 周赛401
  • Java | Leetcode Java题解之第171题Excel表列序号
  • 【uni-app学习手札】
  • ASP.NET Core 中使用 Dapper 的 Oracle 存储过程输出参数
  • C++的动态内存分配
  • 【论文阅读】-- TSR-TVD:时变数据分析和可视化的时间超分辨率
  • 《web应用技术》第12次课后作业
  • 【初阶数据结构】深入解析带头双向循环链表:探索底层逻辑
  • 【面试干货】Java中的访问修饰符与访问级别
  • Oracle最终还是杀死了MySQL
  • 【Python的随机数汇总】
  • [状态压缩 广搜BFS]Saving Tang Monk
  • Flutter 实现软鼠标
  • 使用 MLRun 和 MinIO 设置开发机器
  • 资质申请表详解:填写《建筑幕墙工程设计专项资质申请表》的要点
  • 华为手机怎么找回删除的照片?掌握3个方法,恢复不是梦
  • 数据结构试题 20-21
  • vscode插件开发之 - TestController
  • QBitArray使用详解