laravel实现excel表的导入导出功能

这是个我去公司之后曾经折磨我很久很久的功能查阅了很多资料但是功夫不负有心人在本人的不懈努力下还是实现了这个功

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‘].‘&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;‘;
            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下载提交视图模板

原文地址:https://www.cnblogs.com/yaoliuyang/p/12244744.html

时间: 2024-11-06 21:23:18

laravel实现excel表的导入导出功能的相关文章

在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能(转)

1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和 导出 . 该项目的GitHub地址是: https://github.com/Maatwebsite/Laravel-Excel . 本文我们将在Laravel中使用Laravel Excel简单实现Excel文件的导入和导出. 2.安装&配置 使用Composer安装依赖 首先在Laravel项目根目录

在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和 导出 . 该项目的GitHub地址是: https://github.com/Maatwebsite/Laravel-Excel . 本文我们将在Laravel中使用Laravel Excel简单实现Excel文件的导入和导出. 2.安装&配置 使用Composer安装依赖 首先在Laravel项目根目录

thinkphp5中的excel表的导入导出

首先将PHPExcel文件放到vendor中 PHPExcel下载地址:https://pan.baidu.com/s/1GjbcSXxHwbLeBw8NzzIBYA 提取码:zbqq 数据导出到excel中 控制器中引入类文件 vendor ( 'PHPExcel' );vendor ( 'PHPExcel.PHPExcel_IOFactory' );vendor ( 'PHPExcel.PHPExcel_Cell' ); 控制器php代码 public function index()//E

使用 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... */ M

Laravel Excel 实现 Excel-CSV 文件导入导出功能

Laravel Excel 是一款基于 PHPExcel 开发的Laravel框架专用的 Excel/CSV 文件导入导出功能的扩展包,用起来的非常方便. 它的 Github 地址是:https://github.com/Maatwebsite/Laravel-Excel 安装 我们就按照GIthub上的readme文件进行安装吧. composer require "maatwebsite/excel:~2.1.0" 在 config/app.php 中注册服务提供者到 provid

使用phpExcel实现Excel数据的导入导出(完全步骤)

使用phpExcel实现Excel数据的导入导出(完全步骤) 很多文章都有提到关于使用phpExcel实现Excel数据的导入导出,大部分文章都差不多,或者就是转载的,都会出现一些问题,下面是本人研究phpExcel的使用例程总结出来的使用方法,接下来直接进入正题. 首先先说一下,本人的这段例程是使用在Thinkphp的开发框架上,要是使用在其他框架也是同样的方法,很多人可能不能正确的实现Excel的导入导出,问题基本上都是phpExcel的核心类引用路径出错,如果有问题大家务必要对路劲是否引用

SSM excel文件的导入导出

对于excel文件的导入导出,后台接收读取和建表封存都是固定死的,所以对于excel导入时,excel文件内容必须匹配后台相关对象,不然报错. excel文件导出,用<a><a/>标签即可,通过后台去完成 ,不可用ajax去写导出,ajax请求只是个"字符型"的请求,即请求的内容是以文本类型存放的. 文件的下载是以二进制形式进行的,ajax没法解析后台返回的文件流,所以无法处理二进制流response输出来下载文件. 当获取前台导入这个命令后,会通过Mybati

【最后的冲刺】android中excel表的导入和数据处理

[最后的冲刺]android中excel表的导入和数据处理 --学校课程的查询和修改 1.编写 The Class类把课程表courses.db当做一个实体类,hashcode和equals这两个类是为了判断输入的查询内容和Excel表中的内容是否一致. 并在java里面区别两个对象是否一致 1 public class TheClass { 2 private String classname; 3 private String type; 4 private String teacher;

Excel表数据导入Sql Server数据库中

Excel表数据导入Sql Server数据库的方法很多,这里只是介绍了其中一种: 1.首先,我们要先在test数据库中新建一个my_test表,该表具有三个字段tid int类型, tname nvarchar类型, tt nvarchar类型(注意:my_test表中的数据类型必须与Excel中相应字段的类型一致) 2. 我们用SELECT * FROM  OPENROWSET( 'Microsoft.Jet.OLEDB.4.0 ', 'Excel  5.0;DatabASE=[Excel表