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

使用 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 数组中添加:

Maatwebsite\Excel\ExcelServiceProvider::class,

aliases 数组中添加:

'Excel' => Maatwebsite\Excel\Facades\Excel::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); })
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113100.html原文链接:https://javaforall.net

(0)
上一篇 2021年10月24日 下午2:00
下一篇 2021年10月24日 下午3:00


相关推荐

  • 什么是施密特触发器?

    什么是施密特触发器?背景我在一个光路接收模块中包含一个施密特触发器 很多时候并不知道施密特触发器的作用 因此 此处首先给出电路图的基本的结构 随后 进行分析施密特触发器的基本的作用是什么 电路结构图施密特触发器 SN74LVCG17 什么是施密特触发器施密特触发器有两个稳定状态 但与一般触发器不同的是 施密特触发器采用电位触发方式 其状态由输入信号电位维持 对于负向递减和正向递增两种不同变化方向的输入信号 施密特触发器有不同的阈值电压 我向用我自己的理解的方式说明下 施密特就是为了防止在某一个临界电平的情况出现各

    2026年3月19日
    1
  • AI时代“单人成军”怎么干?江苏多地送来“养虾”大礼包

    AI时代“单人成军”怎么干?江苏多地送来“养虾”大礼包

    2026年3月13日
    2
  • 红黑树与平衡二叉树的原理和区别

    红黑树与平衡二叉树的原理和区别一 平衡二叉树平衡二叉树或者是空树 或者是具有如下特征的二叉排序树 1 左子树和右子树的深度之差的绝对值不超过 1 2 左子树和右子树也是平衡二叉树 若将二叉树上结点的平衡因子 BalanceFacto BF 定义为该结点左子树和右子树的深度之差 则平衡二叉树上所有结点的平衡因子只可能觅 1 0 和 1 只要二叉树上有一个结点的平衡因子的绝对值大于 1 则该二叉树就是不平衡

    2026年3月26日
    3
  • 【Oracle VM VirtualBox安装SteamOS 教程】

    【Oracle VM VirtualBox安装SteamOS 教程】OracleVMVirt 安装 SteamOS 教程准备工作准备 iso 安装准备工作 UltraISO 软件 SteamOS 安装包 OracleVMVirt 准备 iso 下载 SteamOS 安装包官网下载的是 zip 包 需要将其转为 iso 包我已经准备好了链接 https pan baidu com s 1frHJdo4PQB9 提取码 xsps 如果需要最新版 只需要在官网下载最新的 zip 解压 再用 UltraISO 打开 SteamOS iso 替换掉里

    2025年10月9日
    11
  • pycharm多行代码缩进、左移_python批量缩进快捷键

    pycharm多行代码缩进、左移_python批量缩进快捷键选中需要缩进的代码后,向左标准缩进:shift+Tab向右标准缩进:Tab

    2022年8月28日
    8
  • 虚拟机联网的三种方式(虚拟机 macos)

    虚拟机联网与本机共享网络window任务栏网络图标右键打开“网络和internet”设置下拉点击网络和共享中心????点击蓝色的WLAN(xxx)????点击属性(P)、共享????如图勾选启动虚拟机,点击菜单栏中的虚拟机????设置????网络适配器勾选仅主机模式:与主机共享的专业网络如下????最后启动MacOS,打开设置中的网络,我们可以看到以太网前面呈现绿色点,表明设置成功。ps:更改设置前已启动…

    2022年4月12日
    237

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号