使用 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/)。
二、安装配置 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);
})
使用 Laravel-Excel 进行 CSV/EXCEL 文件读写的更多相关文章
- pyhton读入Excel和csv数据文件
pyhton读入Excel和csv数据文件#file 数据文件的输入输出操作(主要包括Excel表格和csv表格文件)import pandas as pd #pyhton读入数据必须要导入panda ...
- 将Excel另存为CSV格式文件
直接将Excel另存为CSV,速度很快: $CurrentPath = $MyInvocation.MyCommand.Path.substring(0,$MyInvocation.MyCommand ...
- 用脚本将excel,csv等文件导入数据库
文章转自 http://blog.csdn.net/lky5387/article/details/6043009 1.--导excel文件 select 订单编码 from OpenRowSet( ...
- Excel和CSV格式文件的不同之处
来源:https://blog.csdn.net/weixin_39198406/article/details/78705016 1.个人理解:为何选择使用csv来存储接口测试用例相关字段数据,而不 ...
- 从Excel(CSV)文件导入数据到Oracle
步骤: 1.准备数据:在excel中构造出需要的数据2.将excel中的数据另存为文本文件(有制表符分隔的)3.将新保存到文本文件中的数据导入到pl*sql中在pl*sql中选择tools--text ...
- 如何处理大体积 XLSX/CSV/TXT 文件?
在开发过程中,可能会遇到这样的需求,我们需要从本地的 Excel 或 CSV 等文件中解析出信息,这些信息可能是考勤打卡记录,可能是日历信息,也可能是近期账单流水.但是它们共同的特点是数据多且繁杂,人 ...
- 13--Python入门--文件读写--CSV&Excel文件
EXCEL文件 import pandas as pd excel=pd.read_excel('read_excel.xlsx') print(excel) CSV文件 import pandas ...
- 计算机程序的思维逻辑 (64) - 常见文件类型处理: 属性文件/CSV/EXCEL/HTML/压缩文件
对于处理文件,我们介绍了流的方式,57节介绍了字节流,58节介绍了字符流,同时,也介绍了比较底层的操作文件的方式,60节介绍了随机读写文件,61节介绍了内存映射文件,我们也介绍了对象的序列化/反序列化 ...
- Java编程的逻辑 (64) - 常见文件类型处理: 属性文件/CSV/EXCEL/HTML/压缩文件
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...
- 如何在 Laravel 项目中处理 Excel 文件
1.Laravel Excel Laravel Excel 是一款基于PHPExcel开发的Laravel框架专用的Excel/CSV 文件导入导出功能的扩展包,用起来的非常方便.它的Github地址 ...
随机推荐
- web前端学习(四)JavaScript学习笔记部分(2)-- JavaScript语法详解
2.1.Javascript语法-运算符(1) 复数运算符 %取余 ++ -- 赋值运算符 += -= *= /= %= 字符串操作 <!DOCTYPE html> <html la ...
- CSS3渐变效果
一.线性渐变linear-gradient 1.使用方法: background:-webkit-linear-gradient(red,blue);background:-moz-linear-g ...
- C#和JS交互 WebBrowser实例
本文实现了WebBrowser的简单例子 1.引用System.Windows.Froms.dll 2.引用WindowsFormsIntegration.dll 代码如下: public parti ...
- 指定程序集的位置 | Microsoft Docs
原文:指定程序集的位置 | Microsoft Docs 指定程序集的位置Specifying an Assembly's Location 2017/03/30 作者 使用<b a s e & ...
- iOS 自定义 URL Scheme 完全指南
http://www.cocoachina.com/industry/20140522/8514.html “” 阅读器 自定义URL Scheme 本文转自Migrant的博客,原文:<T ...
- MaxCompute 助力衣二三构建智能化运营工具
摘要:本文由衣二三CTO程异丁为大家讲解了如何基于MaxCompute构建智能化运营工具.衣二三作为亚洲最大的共享时装平台,MaxCompute是如何帮助它解决数据提取速度慢.数据口径差异等问题呢?程 ...
- HTML-DOM常用对象的用法(select/option/form/table)
HTML DOM 常用对象: 它对常用HTML元素操作的简化. Select对象 它代表页面上的一个select元素,常用属性有: select.value ——当前选中项的value ,没有valu ...
- 【JZOJ4895】【NOIP2016提高A组集训第16场11.15】三部曲
=v= 因为外来的入侵,国王决定在某些城市加派士兵.所有城市初始士兵数量为0.当城市 被加派了k名士兵时.城市i的所有子城市需要被加派k+1名士兵.这些子城市的所有子城市需要被加派k+2名士兵.以此类 ...
- django查看数据库
#views import pymysql def get_date(request): conn = pymysql.connect( host='localhost', port=3306, us ...
- Directx11教程(64) tessellation学习(6)-PN Triangles
原文:Directx11教程(64) tessellation学习(6)-PN Triangles 前面我们用tessellation细分三角形或者四边形,产生的细分点都是在三角形或四边形 ...