首页 > 其他分享 >BootStrap导入excel

BootStrap导入excel

时间:2023-05-23 14:03:13浏览次数:47  
标签:文件 console log true BootStrap excel 导入 上传

BootStrap_实现导入Excel(BootStrap-InputFile)【实例】

weixin_40877388

于 2020-03-31 14:52:47 发布

5505
 收藏 19
分类专栏: BootStrap
版权

BootStrap
专栏收录该内容
2 篇文章0 订阅
订阅专栏
一、前言

    在批量加入学生信息的时候,我们通常采用Excel导入的方式,方便,快捷。本篇使用SpringBoot+BootStrap-InputFile+poi的结合方式,写一个完整的导入Excel的例子。

    BootStrap-InputFile所需要的的包可以到下载Demo,之后将js文件夹,css文件夹拷贝过来即可使用。

    git地址:https://github.com/kartik-v/bootstrap-fileinput

    Demo地址:https://plugins.krajee.com/file-input/demo

    中文文档:http://www.bootstrap-fileinput.com/

    API:https://plugins.krajee.com/file-input

二、我的代码是这样写的

    2.1 相较于上一篇文章的代码,在html页面中引入BootStrap-InputFile所需要的js和css,并在html中添加Bootstrap的model弹框,修改了导出按钮,全部的html代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>学生信息</title>
    <link rel="stylesheet" href="../static/common/bootstrap-3.3.7-dist/css/bootstrap.min.css">
    <link rel="stylesheet" href="../static/common/bootstrap-table/bootstrap-table.css">
    <link rel="stylesheet" href="../static/common/bootstrap-fileinput/css/fileinput.min.css">
</head>
<body>
    <div class="wrapper wrapper-content animated fadeInRight"id="tablediv">
        <!--列表搜索条件-->
        <div class="row">
            <div class="col-sm-12">
                <div class="ibox float-e-margins">
                    <div class="ibox-title">
                        <h5>学生列表筛选条件</h5>
                        <!--<div class="ibox-tools">
                            <a class="collapse-link"><i class="fa fa-chevron-up"></i></a>
                            <a class="close-link"><i class="fa fa-times"></i></a>
                        </div>-->
                    </div>
                    <div class="ibox-content search-query">
                        <div class="row">
                            <div class="col-sm-6">
                                <div class="form-group">
                                    <label class="control-label col-sm-2">学生id:</label>
                                    <div class="input-group col-sm-4">
                                        <input type="text" class="form-control" id="sId" name="sId">
                                    </div>
                                </div>
                            </div>
                            <div class="col-sm-6">
                                <div class="form-group">
                                    <label class="control-label col-sm-2">学生学号:</label>
                                    <div class="input-group col-sm-4">
                                        <input type="text" class="form-control" id="sNumber" name="sNumber">
                                    </div>
                                </div>
                            </div>
                            <div class="col-sm-6">
                                <div class="form-group">
                                    <label class="control-label col-sm-2">学生姓名:</label>
                                    <div class="input-group col-sm-4">
                                        <input type="text" class="form-control" id="sName" name="sName">
                                    </div>
                                </div>
                            </div>
                            <div class="col-sm-6">
                                <div class="form-group">
                                    <label class="control-label col-sm-2">学生年龄:</label>
                                    <div class="input-group col-sm-4">
                                        <input type="text" class="form-control" id="sAge" name="sAge">
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <!--<div class="hr-line-dashed"></div>-->
                    <div class="ibox-content search-query">
                        <div class="row">
                            <div class="col-sm-2">
                                <div class="form-group">
                                    <button class="btn btn-primary infoSearchSubmit" type="button" id="studentSearchSubmit">
                                        搜索
                                    </button>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <!--列表内容-->
        <div class="row">
            <div class="col-sm-12">
                <div class="ibox float-e-margins">
                    <div class="ibox-title">
                        <h2>学生信息列表</h2>
                    </div>
                    <div class="alarm">
                        <button class="btn btn-danger" id="export" onclick="exportData()">导出Excel</button>
                        <!--<button class="btn btn-danger" id="import" onclick="importData()">批量导入</button>-->
                        <button class="btn btn-primary" id="upload">批量导入</button>
                    </div>
                    <div class="ibox-content">
                        <div class="row row-lg">
                            <div class="col-sm-12">
                                <div class="example-wrap">
                                    <div class="example" >
                                        <table id="studentTable"></table>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
 
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title" id="myModalLabel">文件上传</h4>
            </div>
            <div class="modal-body">
                <input id="f_upload" type="file"  name="file"/>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
                <button type="button" class="btn btn-primary">提交更改</button>
            </div>
        </div><!-- /.modal-content -->
    </div><!-- /.modal -->
</div>
 
    <script src="../static/common/jquery-3.2.0.min.js"></script>
    <script src="../static/common/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
    <script src="../static/common/bootstrap-table/bootstrap-table.js"></script>
    <script src="../static/common/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
 
    <script src="../static/common/bootstrap-table/extensions/export/bootstrap-table-export.js"></script>
    <script src="../static/common/bootstrap-table/tableExport.js"></script>
 
    <script src="../static/common/bootstrap-fileinput/js/fileinput.min.js"></script>
    <script src="../static/common/bootstrap-fileinput/js/locales/zh.js"></script>
 
    <script src="../static/student_detail.js"></script>
 
</body>
</html>
2.2js代码中增加点击按钮弹出模态框功能和文件上传功能,增加的代码如下:

$(function(){
    
    initUpload();
   
    $("#upload").on("click",function(){
        $("#myModal").modal("show");
    });
    
})
function initUpload(){
    $("#f_upload").fileinput({
        language: 'zh',//设置语言
        uploadUrl: "importstudent",//上传的地址
        allowedFileExtensions: ["xls", "xlsx"],//接收的文件后缀
        dropZoneTitle: '可以将文件拖放到这里',
        uploadAsync: true, //默认异步上传
        showPreview: true,//是否显示预览
        showUpload: true,//是否显示上传按钮
        showRemove: true, //显示移除按钮
        showCancel:true,   //是否显示文件上传取消按钮。默认为true。只有在AJAX上传过程中,才会启用和显示
        showCaption: true,//是否显示文件标题,默认为true
        browseClass: "btn btn-primary", //文件选择器/浏览按钮的CSS类。默认为btn btn-primary
        dropZoneEnabled: true,//是否显示拖拽区域
        maxFileSize: 0,//最大上传文件数限制,单位为kb,如果为0表示不限制文件大小
        minFileCount: 1, //每次上传允许的最少文件数。如果设置为0,则表示文件数是可选的。默认为0
        maxFileCount: 1, //每次上传允许的最大文件数。如果设置为0,则表示允许的文件数是无限制的。默认为0
        previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",//当检测到用于预览的不可读文件类型时,将在每个预览文件缩略图中显示的图标。默认为<i class="glyphicon glyphicon-file"></i>
        previewFileIconSettings: {
            'docx': '<i ass="fa fa-file-word-o text-primary"></i>',
            'xlsx': '<i class="fa fa-file-excel-o text-success"></i>',
            'xls': '<i class="fa fa-file-excel-o text-success"></i>',
            'pptx': '<i class="fa fa-file-powerpoint-o text-danger"></i>',
            'jpg': '<i class="fa fa-file-photo-o text-warning"></i>',
            'pdf': '<i class="fa fa-file-archive-o text-muted"></i>',
            'zip': '<i class="fa fa-file-archive-o text-muted"></i>',
        },
        msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!",//字符串,当文件数超过设置的最大计数时显示的消息 maxFileCount。默认为:选择上传的文件数({n})超出了允许的最大限制{m}。请重试您的上传!
        elErrorContainer: '#kartik-file-errors'
    }).on("fileuploaded", function(event, data, previewId, index) {
        console.log("fileuploaded");
        console.log("event"+event);
        console.log("data"+data);
        console.log("previewId"+previewId);
        console.log("index"+index);
    }).on('fileerror', function(event, data, msg) {
        console.log("fileerror");
        console.log("event"+event);
        console.log("data"+data);
        console.log("msg"+msg);
    });
}
————————————————
版权声明:本文为CSDN博主「weixin_40877388」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_40877388/article/details/105221688

 

标签:文件,console,log,true,BootStrap,excel,导入,上传
From: https://www.cnblogs.com/webSnow/p/17424472.html

相关文章

  • js导入excel&导出excel
    js导入excel&导出excel Excel导入html代码<buttonstyle={{color:'#1890ff',fontSize:'14px',cursor:'pointer'}}onClick={()=>{upFile();}}>导入</button><inputid="upFile"type="fil......
  • 8百多经典古诗学习鉴赏ACCESS\EXCEL数据库
    虽然古诗类的数据搞到过很多,但是有鉴赏、译文等鉴赏类字段的还是很少,而今天搞到一个古诗学习类数据库,虽然记录数不多,但大都有翻译、鉴赏、译文等字段内容,是小学生、中学生、高中生学习的好东西。朝代统计:金朝(2)、两汉(22)、明代(25)、南北朝(24)、清代(27)、宋代(348)、唐代(373)、魏晋(19)、五......
  • 8千多古诗词唐诗宋词鉴赏ACCESS\EXCEL数据库
    虽然已经有很多诗词类的数据库,最近又再次找了一下古诗词类的数据,又发现了一些,可是真的是各有各的优点,各有各的特色,之后不再重找诗词类的数据了。今天这个诗词鉴赏数据也不错,有分类TAG,也有译文、注释、品析、朝代,但是又有些不足,详见下面说明:朝代记录统计:金朝(15)、近代(8)、两汉(143)......
  • NPOI读取Excel数据
    usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.IO;usingNPOI.HSSF.UserModel;//用于处理Excel的NPOI库html<f:FileUploadID="fileUpload"runat="server"AllowMultiFile="false"/> C#protectedvoidUploadButton_Cl......
  • Python自动化办公对每个子文件夹的Excel表加个表头(Excel不同名)(上篇)
    大家好,我是皮皮。一、前言上一篇文章,我们抛出了一个问题,这篇文章来进行解答。如果针对子文件夹下不同的Excel表名,应该如何处理?二、实现过程我们继续问ChatGPT,它给出了一个方法,如下所示:提问如下:假如你是一名Python程序员,现在你有一个自动化办公的需求,你桌面上有一个新建文件夹......
  • 导入文件的目录路径
    earth-forecasting-transformer/src/earthformer/config.pyscripts/cuboid_transformer/enso/train_cuboid_enso.py在这种情况下,你可以使用以下代码在"train_cuboid_enso.py"中导入"cfg":from.......
  • 在Windows Server 2022中使用Microsoft Deployment Toolkit(MDT)时,Bootstrap.ini文件是
    在WindowsServer2022中使用MicrosoftDeploymentToolkit(MDT)时,Bootstrap.ini文件是用于启动和定制Windows预安装环境(WinPE)的关键文件。以下是常见的Bootstrap.ini参数及其描述:[Settings]:指定设置组。Priority:指定Bootstrap.ini的优先级,以确定哪个Bootstrap.ini文件将被使用(如......
  • MongoDB-怎么将csv数据导入mongodb数据库的某张表中
    背景介绍背景就是开发突然问我能不能往数据库导数据,然后只需要某几列的数据。我的第一想法是:用python脚本读取csv文件,将内容拼接成json格式的文本,然后用脚本的方式导入。后来发现我用的GUI工具就可以直接导入数据到数据库中。实现过程既然有工具能够直接导入,那肯定就用现成的工具导......
  • 1千小学必知百科知识题库ACCESS\EXCEL数据库
    《小学必知百科知识题库ACCESS数据库》主要针对小学阶段的内容编制。通过智力问答的形式,将不同科目的知识串联起来,让知识通过你问我答的形式记忆的更加深刻。每天随机问孩子十个问题,不需多久孩子的知识面就丰富很多。分类情况为:地理(共217条)、科学(共203条)、历史(共178条)、社会(共13......
  • 关于Excel表格中对多个General或者Number数值格式的单元转换为Text文本时-值包含E+的
    对于单元格的值为默认的General或者Number数字时,我们可以直接选中,单元格,或者某个范围,可以直接将上面的格式处选择为Text这样就完成了一次格式转换,如下默认是General普通格式,我们直接就将其转换成Text文本格式不过只有当我们将鼠标双击一下单元格式,才会看到左上角看到熟悉的Text......