【Laravel】使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
一、安装配置
使用Composer安装依赖:
composer require maatwebsite/excel
发布配置(可选):
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
配置config/app.php的providers和aliases(可选):
'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/
【Laravel】使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能的更多相关文章
- Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和导出. 该 ...
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和 导出 ...
- Laravel Excel 实现 Excel-CSV 文件导入导出功能
Laravel Excel 是一款基于 PHPExcel 开发的Laravel框架专用的 Excel/CSV 文件导入导出功能的扩展包,用起来的非常方便. 它的 Github 地址是:https:// ...
- Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
1.简介 本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍吧. Laravel Excel 在 ...
- CSV文件导入导出MySQL
使用SQLyog 工具导入文件数据到MySQL: Excel文件导入导出: 需要驱动:Microsoft Office 2007驱动 导入需要注意的问题:1.Excel里数值列,默认导入会变成浮点型. ...
- MySql csv文件导入导出
一.导出到csv(本地导出) 通过mysql客户端shell连接到服务器,选择使用的数据库,输入sql代码: select * from test_info into outfile '/tmp/te ...
- MongoDB csv文件导入导出
1.导出到csv文件: 2.从csv导入: 数据经过csv导出导入,有一个非常隐蔽的问题,编写代码时需要注意: 先导入一条数据: 其中Price是double类型: 然后我把该条记录导出到Demo.c ...
- 【转】Java操作CSV文件导入导出
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- 按照TYPE的文件导入导出功能
/** * 导入文件Action;*/private File excelFile;// 保存原始文件名private String excelFileFileName;// 保存原始文件名priva ...
随机推荐
- "该公众号暂时无法提供服务,请稍后再试"的问题
倒腾了好久,对微信公众号也不是很熟悉.不知道怎么看问题,php学的也不久. 1.定位问题. 网上找了很久,最后找到两种定位问题的方式. a.https://blog.csdn.net/qq_28506 ...
- 14 张思维导图构建 Python 核心知识体系
ZOE是一名医学生,在自己博客分享了很多高质量的思维导图.本文中所列的 14 张思维导图(高清图见文末),是 17 年作者开始学习 Python 时所记录的,希望对大家有所帮助.原文:https:// ...
- 实现客户端与服务端之间传输json数据
步骤:创建数据库,并创建表.利用myeclipse创建新工程,利用JDBC实现java操纵数据库.实现客户端类,服务端类.具体实现:创建数据表create table usertable( usern ...
- LeetCode第29场双周赛题解
第一题 用一个新数组newSalary保存去掉最低和最高工资的工资列表,然后遍历newSalary,计算总和,除以元素个数,就得到了平均值. class Solution { public: doub ...
- MySQL 8.0 主从同步
一.简介 一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中.MySQL主从复制的基础是主服务器对数据库修改记录二进制日志,从服务器通过主服务器 ...
- Yarn的安装和全局配置(源/缓存位置/全局安装位置)
本文安装环境: Win10 64位 前置条件: 已安装好Node环境(参考Node安装与环境配置) 下载和安装 Yarn安装包下载地址 全局配置 控制台输入命令, 正常显示版本表示安装成功 $ yar ...
- 20 个 CSS高级样式技巧汇总
使用技巧会让人变的越来越懒,没错,我就是想让你变懒.下面是我收集的CSS高级技巧,希望你懒出境界. 1. 黑白图像 这段代码会让你的彩色照片显示为黑白照片,是不是很酷? img.desaturate ...
- Mybatis源码初探——优雅精良的骨架
@ 目录 前言 精良的Mybatis骨架 宏观设计 基础支撑 日志 日志的加载 日志的使用 数据源 数据源的创建 池化技术原理 数据结构 获取连接 回收连接 缓存 缓存的实现 CacheKey 反射 ...
- day79 组件化开发
目录 一.组件[component] 默认组件 二. Vue自动化工具(Vue-cli) 1 安装node.js 2 npm 3 安装Vue-cli 4 使用Vue-CLI初始化创建前端项目 4.1 ...
- DVWA学习记录 PartⅧ
Weak Session IDs 1. 题目 用户访问服务器的时候,为了区别多个用户,服务器都会给每一个用户分配一个 session id .用户拿到 session id 后就会保存到 cookie ...