laravel实现excel表的导入导出功能
1.这是个我去公司之后曾经折磨我很久很久的功能查阅了很多资料但是功夫不负有心人在本人的不懈努力下还是实现了这个功能
(ps看不懂我下面说讲述的可以参考这个laravel学院的官方文档 https://xueyuanjun.com/post/2024.html)
官方主页:https://laravel-excel.com/
1.1使用的时候先用composer安装excel依赖
这里需要注意一下最好只用laravel5.0的框架然后使用excel2.0不然的话会报错
第一个是默认安装一般安装最新版本,第二个是2.1版本
composer require maatwebsite/excel composer require maatwebsite/excel ~2.1
1.2同样在config/app.php中注册门面到aliases数组:
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
1.3如果想要对Laravel Excel进行更多的自定义配置,执行如下Artisan命令:(ps:这个看情况选择你需要的配置)
php artisan vendor:publish
上面的如果你不会执行的话就直接执行第二个
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
namespace App\Http\Controllers;
use App\Http\Controllers\Admin\ContentTypes\File;
use App\Models\Win1;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\Storage;
use Maatwebsite\Excel\Facades\Excel;
use Illuminate\Routing\Controller;
use Symfony\Component\CssSelector\Parser\Reader;
使用的时候需要导入的use类
将数据导出excel功能代码
public function index(Excel $excel){
//将数据库中的信息转化为excel文件内容
$data=Win1::with('hasManyWindow')->get();
foreach ($data as $key){
$export[]=array(
'id'=>$key['id'],
'window'=>$key['window'],
// 数据表中的两个字段
);
}
$table_name='窗口名称';
$excel::create($table_name,function ($excel)use($export){
$excel->sheet('Sheet1',function ($sheet)use($export){
$sheet->fromArray($export);
});
})->store('xlsx')->export('xlsx');
}
excel数据导出为数据表的类
将excel表中的数据通过视图层按钮导入数据库
public function excelfile(Request $request)
{
//1.思路get传输过来的Excel文件地址
//2.循环读取数据保存到数组
//3.循环数组保存到数据库中 $flag=true;
$file=$request->file('file'); if($file){
//得到文件的路径
$realPath = $file->getRealPath();
//上传文件的后缀.
$entension = $file -> getClientOriginalExtension();
// 获取上传的文件缓存在tmp文件夹下的绝对路径
$newpath=$file->getRealPath();
$tabl_name = date('YmdHis').mt_rand(100,999);//时间戳
if($flag==true){
Excel::load($realPath,function ($reader) use ($tabl_name){
//获取excel的第几张表
$reader = $reader->getSheet(0);
//获取表中的数据
$data = $reader->toArray();
for($row=0;$row<count($data);$row++){
//echo $data[$row]['0'].' ';
DB::table('windowmessage')->insert(['id'=>$data[$row]['0'],'window'=>$data[$row]['1']]);
} });
return '<script>alert("文件上传成功");window.location.href="importexcel"</script>';
} }else{
return '<script>alert("文件为空上传失败!请重新上传");window.location.href="importexcel"</script>';
} }
将excel数据导入数据库
下面是blade模板中的代码(ps:给自己看的)
<a href="{{url('excelExport')}}" id="href"><div id="btn" >下载Excel</div></a>
{{--导入按钮--}}
<form style="display:none" action="{{url('excelfile')}}" method="post" enctype="multipart/form-data">
{{csrf_field()}}
<input type="file" name="file" value="">
</form>
<input type="submit" value="批量导入" id="tijiao" >
<!-- 记得载入jquery文件 -->
<script>
$('#tijiao').click(function(){
$(this).prev('form').find('[name="file"]').trigger('click');
});
// 当表单文件有变化时执行提交动作
$('[name="file"]').change(function(){
if($(this).val()){
$('#tijiao').addClass('disabled' );
$(this).parent().submit();
}
});
</script>
blade下载提交视图模板
laravel实现excel表的导入导出功能的更多相关文章
- 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】使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
一.安装配置 使用Composer安装依赖: composer require maatwebsite/excel 发布配置(可选): php artisan vendor:publish --pro ...
- 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 在 ...
- poi实现excel的导入导出功能
Java使用poi实现excel的导入导出功能: 工具类ExcelUtil,用于解析和初始化excel的数据:代码如下 package com.raycloud.kmmp.item.service.u ...
- 利用PHPExcel 实现excel数据的导入导出(源码实现)
利用PHPExcel 实现excel数据的导入导出(源码实现) 在开发过程中,经常会遇到导入导出的需求,利用phpexcel类实现起来也是比较容易的,下面,我们一步一步实现 提前将phpexcel类下 ...
- 循序渐进开发WinForm项目(5)--Excel数据的导入导出操作
随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...
- SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
* 说明:复制表(只复制结构,源表名:a 新表名:b) select * into b from a where 1<>1 * 说明:拷贝表(拷贝数据,源表名:a 目标表名:b) ...
随机推荐
- L001.PyQt
초보자를 위한 Python GUI 프로그래밍 - PyQt5 https://wikidocs.net/book/2944 https://freeprog.tistory.com/330?cat ...
- Python3中的支持向量机SVM的使用(有实例)
https://www.cnblogs.com/luyaoblog/p/6775342.html 首先,我们需要安装scikit-learn 一.导入sklearn算法包 在python中导入sci ...
- 3、MapReduce详解与源码分析
文章目录 1 Split阶段 2 Map阶段 2.1分区 2.2排序 3 Shuffle阶段 4 Reduce阶段 1 Split阶段 首先,接到hdf文件输入,在mapreduce中的ma ...
- 深入浅出Mybatis系列四-配置详解之typeAliases别名(mybatis源码篇)
注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(三)---配置详解之properties ...
- aws申请ec2实例后如何用root用户登录
ec2默认禁用root用户登录,我们创建ec2实例后如何知道使用什么用户登录,有两种方法? 方法一:根据我们选择的镜像来判断用什么用户登录:镜像:centos 用户centos镜像:aws 用户:ec ...
- js 弹窗插件
toastr 参考 https://www.cnblogs.com/fu-yong/p/8609597.html prettyPhoto使用 参考
- python开发第四篇:函数(1)
函数 阅读目录 一 函数知识体系 二 函数基础 三 函数对象.函数嵌套.名称空间与作用域.装饰器 四 迭代器.生成器.面向过程编程 五 三元表达式.列表推导式.生成器表达式.递归.匿名函数.内置函数 ...
- ContestHunter 1201 最大子序和
描述 输入一个长度为n的整数序列,从中找出一段不超过m的连续子序列,使得整个序列的和最大. 例如 1,-3,5,1,-2,3 当m=4时,S=5+1-2+3=7当m=2或m=3时,S=5+1=6 输入 ...
- 《深入理解java虚拟机》读书笔记十——第十一章
第十一章 晚期(运行期)优化 1.HotSpot虚拟机内的即时编译 解释器与编译器: 许多Java虚拟机的执行引擎在执行Java代码的时候都有解释执行(通过解释器执行)和编译执行(通过即时编译器产生 ...
- Linux下用Bash语言实现输出最大值的功能
题目链接: 题目描述 编写一个程序,输入a.b.c三个值,输出其中最大值. 输入 一行数组,分别为a b c 输出 a b c其中最大的数 样例输入 10 20 30 样例输出 30 复习下Linux ...