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

摘要:
--记得载入jquery文件--˃$.click;//当表单文件有变化时执行提交动作$.change(function(){if($(this).val()){$('#tijiao').addClass(
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"  
laravel实现excel表的导入导出功能第1张laravel实现excel表的导入导出功能第2张
namespace App\Http\Controllers;
use App\Http\Controllers\Admin\ContentTypes\File;
useApp\Models\Win1;
useIlluminate\Http\Request;
useIlluminate\Support\Facades\DB;
useIlluminate\Support\Facades\Input;
useIlluminate\Support\Facades\Schema;
useIlluminate\Support\Facades\Storage;
useMaatwebsite\Excel\Facades\Excel;
useIlluminate\Routing\Controller;
use Symfony\Component\CssSelector\Parser\Reader;
使用的时候需要导入的use类

将数据导出excel功能代码

laravel实现excel表的导入导出功能第3张laravel实现excel表的导入导出功能第4张
 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表中的数据通过视图层按钮导入数据库

laravel实现excel表的导入导出功能第5张laravel实现excel表的导入导出功能第6张
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="http://t.zoukankan.com/importexcel"</script>';
}

}else{
    return '<script>alert("文件为空上传失败!请重新上传");window.location.href="http://t.zoukankan.com/importexcel"</script>';
}


}
将excel数据导入数据库

下面是blade模板中的代码(ps:给自己看的)

laravel实现excel表的导入导出功能第7张laravel实现excel表的导入导出功能第8张
  <a href="http://t.zoukankan.com/{{url('excelExport')}}" id="href"><div     >下载Excel</div></a>
{{--导入按钮--}}

        <form   action="{{url('excelfile')}}" method="post" enctype="multipart/form-data">{{csrf_field()}}
              <input type="file" name="file" value="">

        </form>
        <input type="submit" value="批量导入"   >

        <!--  记得载入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表的导入导出功能》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇刚部署的程序加载不出来css,js以及图片在Kali Linux中下载工具Stegsolve下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

利用Python将excel数据读取到word表格

在工作中可能需要两者对excel和word进行转化,今天介绍例如Python 将excel转word表格 看图,我需要将这份excel文档转word表格: 思路: 1、创建需要的表格; 2、读取excel文档; 3、将excel文档数据写入word表格对应的位置; 4、循环 需要用到的模块 创建表格,由于我需要的表格需要进行合并处理,所以使用merge...

NPOI 导出Excel插入图片、设置边框样式、合并单元格、字体样式等小知识

1.设置单元格上边框为黑色实线 ICellStyle cellStyleTail = sheet.Workbook.CreateCellStyle(); cellStyleTail.BorderTop = BorderStyle.Thin; https://blog.csdn.net/ezreal_pan/article/details/81134701...

关于 NPOI 导出的 Excel 出现“部分内容有问题” 的解决方法

近期发现使用 NPOI导出的 Excel文件,有部分用户反映在打开时报错,测试了一下,发现在低版本的 Office中(2003版,配合2007格式兼容包)打开正常,但在高版本 Office中,会报以下错误: 发现“XXX.xlsx”中的部分内容有问题。是否让我们尽量尝试恢复?如果您信任此工作簿的源,请单击“是”。 点击 “否”就不打开文件了,点击 “是”之...

python操作Excel读写--使用xlrd

一、安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。 二、使用介绍 1、导入模块 import xlrd 2、打开Excel文件读取数据 data = xlrd.open_workbook('excelFile.xls') 3、使用技巧 获取一个工作表 t...

asp.net 调用 excel 组件

Asp.net 如何调用 Excel ? 1.引用 Microsoft.Office.Interop.Excel.dll,自动包装成Interop.Microsoft.Office.Interop.Excel.dll 2.代码: ///<summary> ///生成 excel 报表 ///</summary> privatevoi...

ASP操作Excel技术总结

目录一、环境配置二、ASP对Excel的基本操作三、ASP操作Excel生成数据表四、ASP操作Excel生成Chart图五、服务器端Excel文件浏览、下载、删除方案六、附录正文一、环境配置服务器端的环境配置从参考资料上看,微软系列的配置应该都行,即:1.Win9x+PWS+Office2.Win2000Professional+PWS+Office3....