【Laravel】使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

一、安装配置

使用Composer安装依赖:

composer require maatwebsite/excel

发布配置(可选):

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

配置config/app.phpprovidersaliases(可选):

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

二、使用方式

创建导出和导入类:

php artisan make:export UsersExport --model=App\\User
php artisan make:import UsersImport --model=App\\User

(一)数据导出

编写导出类实现相应接口:https://laravel-excel.maatwebsite.nl/3.1/exports/concerns.html

控制器代码:

public function export()
{
    return Excel::download(new UsersExport, 'users.xlsx');
}

(二)数据导入

编写导入类实现相应接口:https://laravel-excel.maatwebsite.nl/3.1/imports/concerns.html

控制器代码:

public function import()
{
    return Excel::import(new UsersImport, 'users.xlsx');
}

数据导入注意事项:

Excel::import($import, $filePath, $disk = null, $readerType = null)方法注意事项

①方式一:可以不用将excel文件上传到磁盘,方法第二个参数设置为上传文件对象的实例,例如:

Excel::import(new UsersImport, $request->file('excel'));

②方式二:将excel文件上传到磁盘,第二个参数设置为相对于磁盘的相对路径,第三个参数需设置为磁盘名。如果不设置磁盘名会采用默认磁盘。例如:

  文件地址为:. . ./storage/app/public/excel/user.xlsx (软链接地址为:/public/storage/excel/user.xlsx)==>>$filePath应该设置为:excel\user.xlsx

 Excel::import(new UsersImport, $fileName,'public');

数据导入注意事项:

  ①默认情况下,直接导入数据库会将表格所有数据导入(包括第一行表头),如果不需要第一行数据,应该手动处理,或者导入类实现Maatwebsite\Excel\Concerns\WithHeadingRow接口来把第一行作为标题行。

  ②使用模型进行添加数据不要忘了给模型设置$fillable或$guarded属性。

三、参考文档:

依赖库地址:https://packagist.org/packages/maatwebsite/excel
官方文档:https://laravel-excel.maatwebsite.nl/

转载于:https://www.cnblogs.com/jxl1996/p/10312197.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值