zoukankan      html  css  js  c++  java
  • 【Laravel】使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

    一、安装配置

    使用Composer安装依赖:

    composer require maatwebsite/excel

    发布配置(可选):

    php artisan vendor:publish --provider="MaatwebsiteExcelExcelServiceProvider"

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

    'providers' => [
        /*
         * Package Service Providers...
         */
        MaatwebsiteExcelExcelServiceProvider::class,
    ]
    'aliases' => [
        //...
        'Excel' => MaatwebsiteExcelFacadesExcel::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应该设置为:exceluser.xlsx

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

    数据导入注意事项:

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

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

    三、参考文档:

    依赖库地址:https://packagist.org/packages/maatwebsite/excel

    官方文档:https://laravel-excel.maatwebsite.nl/

  • 相关阅读:
    js021-Ajax与Comet
    Android之应用程序基础
    Android之项目的目录结构
    Android之ContentProvider组件
    Android之BroadcastReceiver组件
    Android之Activity组件
    Android之Service组件
    2.绘制简单的几何图形
    1.一个简单的OpenGL程序
    2.由深拷贝和浅拷贝引发的写时拷贝技术
  • 原文地址:https://www.cnblogs.com/jxl1996/p/10312197.html
Copyright © 2011-2022 走看看