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) ...
随机推荐
- C#中类的编程规范
C#中类的编程规范,或许这是一个好习惯. using System; using System.Collections.Generic; using System.Linq; using System ...
- 内网IPC$入侵加pstools之远程控制
前言: IPC$(Internet process connection)是指内网里面的文件共享连接,通常很多机子的默认共享都是打开的,在cmd下使用命令net share可查看自己的IPC$是否打开 ...
- nohup npm start &启动之后关闭终端程序没有后台运行
感谢:https://blog.csdn.net/nsj820/article/details/5862231 “在当shell中提示了nohup成功后,还需要按终端上键盘任意键退回到shell输入命 ...
- 代数式转换为c语言表达式(很简单)
- npx是什么
npx是一个执行npm软件包的二进制文件,通俗的讲,他可以执行npm的一些指令 在npm>5.2.0 的时候npm里面就集成了npx 比如npx webpack 他会执行node_modules ...
- 题解 AT3717 【[ABC081A] Placing Marbles】
题目传送门. 分析 我们可以把字符串中所有数加起来输出,那么到底怎么把一个字符变成一个数字呢.我们只需要减去字符\(0\)就可以了. 详细步骤 定义字符串\(s\)并将其输入. string s; c ...
- 137.在Django中操作session
在Django中操作session 在django中session默认情况下是存储在服务器的数据库中的,在表中会根据sessionid来提取指定的session数据,然后再把这个sessionid放到 ...
- .NetCore学习笔记:二、基于Dapper的泛型Repository
为减少代码量,这里实现一个基于Dapper的泛型Repository. 这里需要引用Dapper.dll和Dapper.Contrib.dll. 接口定义: /// <summary> / ...
- Python instagram 爬虫项目
直接介绍一下具体的步骤以及注意点: instagram 爬虫注意点 instagram 的首页数据是 服务端渲染的,所以首页出现的 11 或 12 条数据是以 html 中的一个 json 结构存在的 ...
- Babel 7 主要改变
1.不支持Node:0.10,0.12,4,5版本 2.更换命名-@babel/xxx 3.移除以年份命名的presets,统一更换成@babel/preset-env 4.移除 ’Stage‘ pr ...