• 使用 Laravel-Excel 进行 CSV/EXCEL 文件读写


    https://blog.csdn.net/yiluohan0307/article/details/80229978

    http://www.ptbird.cn/laravel-excel-csv.html

    一、需求

    项目需要从 csv 中导入数据并且写入到数据表中。

    因为使用 Laravel 框架,因此就直接用了 Laravel-Excel 进行数据的读写操作。

    网上关于 Laravel-Excel 的使用方法有很多,比较推荐的是在 laravel学院上的一篇:

    Laravel-Excel 文档地址:

    注意事项:

    目前 Laravel-Excel 已经到了 3.0 版本,不再基于 PHPExcel,而是使用 PhpSpreadsheet

    但是现在 3.0 版本不能 import ,只能 export ,所以如果想要导入 excel/csv 只能使用 2.0 版本。

    import 功能将在 3.1 版本加入(应该是能够等到的,我写文章的时候,9 days ago 作者还在 push 代码:https://github.com/Maatwebsite/Laravel-Excel/)。

    TIM截图20180416130424.jpg

    二、安装配置 laravel-excel

    我使用的是 laravel 5.6 版本:(laravel-excel 3.0 只能是 ^5.5 版本),安装的是 ~2.1.0

    Laravel 4 版本应当安装:~1.3

    1. 安装

    composer require maatwebsite/excel ~2.1.0

    2. 配置 config/app.php

    providers 数组中添加:

    MaatwebsiteExcelExcelServiceProvider::class,

    aliases 数组中添加:

    'Excel' => MaatwebsiteExcelFacadesExcel::class,

    3. 导出 Excel.php 配置文件

    php artisan vendor:publish

    这里可能会需要选择某个 tag 进行导出,根据需要输入要导出的配置文件的 tag 即可

    三、导入 Excel

    因为是使用的文件上传功能,因此将文件存储也加上去了。

    因为 $path 得到的文件地址没有 storage/app/ ,因此需要加上。

    这里需要注意的是,laravel-excel 的 load 使用的 path 参数,是本地文件的目录,因此只需要给出本地文件目录地址即可,与 web 目录无关。

    // 文件上传到了 storage/app/patient/xxxxx.txt
    $path = $request->file('file')->store('patient'); 
    // dd($path);
    // $path = "patient/47QhWPGzUgBCLZewclupIWxwfwIQdeDdlyx4DA84.txt";
    // 更新文件本地地址
    $path = 'storage/app/' . $path;
    // 获取 csv 内容
    $data = Excel::load($path, function ($reader) {}, 'GBK')->get();
    dd($data);

    关键的方法:

    $data = Excel::load($path, function ($reader) {}, 'GBK')->get();

    我是使用的 get() 方法来获取数据,除此之外,也可以在回调函数中获取,但是没办法回调什么的

    Excel::load($path,function($reader){
        $data = $reader->all();
        dd($data);
    })
  • 相关阅读:
    Linux下yum升级安装PHP 5.5
    String 字符串详解 / 常用API
    Mysql语句
    Linux配置svn服务器版本库
    linux常用命令
    linux安装GD库
    论MySQL何时使用索引,何时不使用索引
    缓存
    css3图片动画旋转
    SoapUI功能测试、性能测试入门
  • 原文地址:https://www.cnblogs.com/lxwphp/p/9329842.html
Copyright © 2020-2023  润新知