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) ...
随机推荐
- webserver代理生成本地类的两种方式
方式1,把webservers地址请求出来的xml拷贝出来放到文本里面后缀改成wsdl文件在VS里面使用下列命令 C:\Program Files (x86)\Microsoft SDKs\Windo ...
- JavaScirpt 一些基本知识
var name = prompt('请输入你的姓名:'); //弹出输入框 var age = prompt('请输入你的年龄'); var sex = prompt('请输入你的性别'); 检测字 ...
- MySQL在大数据、高并发场景下的SQL语句优化和"最佳实践"
本文主要针对中小型应用或网站,重点探讨日常程序开发中SQL语句的优化问题,所谓“大数据”.“高并发”仅针对中小型应用而言,专业的数据库运维大神请无视.以下实践为个人在实际开发工作中,针对相对“大数据” ...
- #4864. [BeiJing 2017 Wc]神秘物质 [FHQ Treap]
这题其实挺简单的,有个东西可能稍微难维护了一点点.. \(merge\ x\ e\) 当前第 \(x\) 个原子和第 \(x+1\) 个原子合并,得到能量为 \(e\) 的新原子: \(insert\ ...
- CodeForces - 1109A
#include<cstdio> #include<map> #include<iostream> #include<algorithm> using ...
- Sass和Scss
Sass:https://www.sass.hk/ Sass是什么 Sass 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (variables).嵌套 (nested rul ...
- AI 数学基础 : 熵
什么是熵(entropy)? 1.1 熵的引入 事实上,熵的英文原文为entropy,最初由德国物理学家鲁道夫·克劳修斯提出,其表达式为: 它表示一个系系统在不受外部干扰时,其内部最稳定的状态.后来一 ...
- waiting list
Problem: how to cluster non-stationary multivariate time series. What are stationary time series How ...
- 0级搭建类006-Oracle Solaris 安装 (10.13) 公开
项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...
- Python类的特殊成员方法
__doc__ 类的描述信息. class dog: '''这是狗的类''' def __init__(self,name): self.name = name self.__age = None p ...