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) ...
随机推荐
- 程序员:我终于知道post和get的区别
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/kebi007/article/detail ...
- ECMAScript基本对象——Math数学对象
1.创建 不用创建直接使用.直接Math.方法名(): 2.方法 ①random():返回0.0-1.0的随机数,左闭有开 区间有开区间和闭区间,其中又分为全开区间( ),全闭区间[ ],左开右闭区间 ...
- java中数据类型转换注意事项
1.byte.short.char这三种类型互相做数学运算时都会先提升为int类型后再做运算 char a = 'A'; short b = 1; int num = a + b;//a和b在做运算前 ...
- 80端口被Microsoft-HTTPAPI/2.0占用怎么解决?
关闭 SQL Server Reporting Services 服务
- ansible-jinjia2模板
1. 含义 是基于python的模板引擎,包含变量和表达式两部分,这两者在模板求值的时候会被替换为值: 模板中还有标签,控制模板的逻辑 2. 基础语法 - 模板的表达式都包含在分隔符"{{ ...
- Python-Django学习笔记(四)-views的编写以及urls分发器的配置
MTV中的V表示的是Views,视图函数(或简称视图)只是一个Python函数,它接受Web请求并返回Web响应. 通俗的理解可以理解为后端控制器. (响应可以是网页的HTML内容,重定向,404错误 ...
- ASP.NET常用内置对象(三)Server
Server对象是HttpServerUtility的一个实例,也是上下文对象HttpContext的一个属性,提供用于处理Web请求的Helper方法. Server.MapPath("& ...
- RSA学习档案
RSA 学习档案 基本原理 随机选择两个质数p,q模数n=p*qφ(n)=(p−1)(q−1)选择加密指数e: 1 < e < φ(n)计算机密指数d: e*d % φ(n) = 1c = ...
- Piggy-Bank HDU - 1114 完全背包
#include<iostream> #include<cstring> using namespace std; const int INF=0x3f3f3f3f; ]; s ...
- vue加载单文件使用vue-loader报错
报错信息如下:ERROR in ./src/login.vue Module Error (from ./node_modules/vue-loader/lib/index.js): vue-load ...