简单说明:后边要做exl解析(还没做呢),所以先有一个excel的的上传以及获取excel中的数据,展示出来。

代码:

//html代码
<div class="btn-group">
<button class="btn sbold green" id="" onclick="initUpload('excelFile','/vraxx/rightAxx/upload');">
    <span class="ladda-label">导入权益</span>
</button>
</div>
<div class="modal-body">
<div class="row">
<div class="form-group">
<div id="res_tree">
<input id="excelFile" name="excelFile" type="file" multiple="multiple" accept=".xls,.xlsx"/>
</div>
</div>
</div>
</div>
//js代码
function initUpload(ctrlName, uploadUrl) {
var control = $('#' + ctrlName);
   //延时可以去掉的,不影响
clickTimer = window.setTimeout(function(){
control.fileinput({
language: 'zh', //设置语言
uploadUrl: rootPath+uploadUrl, //上传的地址
uploadAsync: false, //默认异步上传
showCaption: true,//是否显示标题
showUpload: true, //是否显示上传按钮
browseClass: "btn btn-primary", //按钮样式
allowedFileExtensions: ["xls", "xlsx"], //接收的文件后缀
maxFileCount: 0,//最大上传文件数限制
previewFileIcon: '<i class="glyphicon glyphicon-file"></i>',
showPreview: true, //是否显示预览
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>',
},
     //黄色部分是业务代码,可以删去
     //蓝色部分是和excel文件相关的固定写法
     //div_startimport是插件里的某个元素
uploadExtraData: function () {
var rightCode=$("#rightCode").val();
if(rightCode == null){
layer.alert("请选取XX号进行上传")
var oTable = new TableInit();
oTable.Init(data);
$("#div_startimport").show();
}else {
var extraValue = "test";
return {"excelType": extraValue};
}
}
});
     //后边两句也可以去掉,我自己的一个弹出样式
$('#res_tree').jstree("deselect_all",true);
$('#responsive_1').modal();
}, 300); }  $("#excelFile").on("filebatchuploadsuccess", function (event, data, previewId, index) {
   //样式可删去
$("#responsive_1").modal('hide');
   //业务代码可删除
var rightCode=$("#rightCode").val();
   //很关键 获取excel里的数据转为json
var obj=JSON.stringify(data.response);
   //后边是通过html动态加载,把数据传到后台
   //换成一般的ajax也是可以的,灵活一点
var html = $("#topli").html();
var tb = $("#loadhtml");
var searchServPath = "/vraxx/rightAxx/toexcel";
tb.html(CommnUtil.loadingImg());
tb.load(rootPath + searchServPath,{excelJson:obj,rightCode:rightCode}, function () {
/** 动态构建内容页面的 path 连接 */
html += '<li data-path="' + searchServPath + '"><i class="fa fa-circle"></i><a href="javascript:void(0)">XX导入</a></li>';
$("#topli").html(html);
});
}); 
//后台java代码
@RequestMapping(value = "/upload", method = RequestMethod.POST)
@ResponseBody
private List<List<String>> importExcel(@RequestParam(value = "excelFile", required = false) MultipartFile[] file, HttpServletRequest request) {
ModelMap map=new ModelMap();
List<List<String>> list =new ArrayList<>();
try {
MultipartRequest multipartRequest=(MultipartRequest) request;
List<MultipartFile> files = ((MultipartHttpServletRequest) request)
.getFiles("excelFile");
for (MultipartFile mufile :files){
List<List<String>> datas = ExcelUtil.readXlsx(mufile.getInputStream(),mufile.getOriginalFilename());
list.addAll(datas);
}
} catch (Exception e) {
e.printStackTrace();
logger.error("导入失败");
}
return list;
} @RequestMapping("/toexcel")
public String toexcel(String excelJson,String rightCode,ModelMap map) throws Exception{
   List<List<String>> listString= JSONArray.fromObject(excelJson); 
   List<VraxxTemporary> rightList = new ArrayList<>();
   /**
   * 对listString增强for循环取数据放到rightList的那坨代码就不贴了
   */
   map.addAttribute("rightList", rightList);
   return VIEW_PATH+"/detail";//跳转到数据展示页
}

说明:网上有很多关于bootstrap  fileupload的使用介绍,但是很多都不太好使,我做这个试了好久才成功,拿出来分享给大家。

基于BootStrap的initupload()实现Excel上传和获取excel中的数据的更多相关文章

  1. MVC4中基于bootstrap和HTML5的图片上传Jquery自定义控件

    场景:mvc4中上传图片,批量上传,上传前浏览,操作.图片进度条. 解决:自定义jquery控件 没有解决:非图片上传时,会有浏览样式的问题; 解决方案; 1.样式 – bootstrap 的css和 ...

  2. 通过form表单上传文件获取后台传来的数据

    小伙伴是不是遇到过这样的问题,通过submit提交form表单的时候,不知怎么获取后台传来的返回值.有的小伙伴就会说你不会发送ajax,其实也会.假如提交的form表单中含有文件,怎么办? 步骤1:想 ...

  3. from表单实现无跳转上传文件,接收页面后台数据

    实现无跳转发送表单数据.文件,并能接收后台返回的数据. 主要技术要点: 1.form表单添加target属性,指定一个iframme的name:form表单提交后在iframe内嵌窗口接受响应,主页面 ...

  4. 基于thinkphp5的Excel上传

    涉及知识点: thinkphp5.0: excel上传: mysql建立新表(基本的create语句): mysql ignore(避免重复插入): 主要功能: 通过在视图中上传excel文件,在my ...

  5. Resumable.js – 基于 HTML5 File API 的文件上传

    Resumable.js 是一个 JavaScript 库,通过 HTML5 文件 API 提供,稳定和可恢复的批量上传功能.在上传大文件的时候通过每个文件分割成小块,每块在上传失败的时候,上传会不断 ...

  6. 利用Bootstrap简单实现一个文件上传进度条

    © 版权声明:本文为博主原创文章,转载请注明出处 说明: 1. 使用commons-fileupload.jar实现文件上传及进度监听 2. 使用bootstrap的进度条进行页面显示 3. 因为进度 ...

  7. 基于h5的图片无刷新上传(uploadifive)

    基于h5的图片无刷新上传(uploadifive) uploadifive简介 了解uploadify之前,首先了解来一下什么是uploadify,uploadfy官网,uploadify和uploa ...

  8. excel上传和下载

    需要注意的地方: 1.js构造表单并提交 2.js中文传参encodeURI(encodeURI("中文")),action接收并转换value = URLDecoder.deco ...

  9. IT轮子系列(六)——Excel上传与解析,一套代码解决所有Excel业务上传,你Get到了吗

    前言 在日常开发当中,excel的上传与解析是很常见的.根据业务不同,解析的数据模型也都不一样.不同的数据模型也就需要不同的校验逻辑,这往往需要写多套的代码进行字段的检验,如必填项,数据格式.为了避免 ...

随机推荐

  1. Flask 快速使用 —— (1)

    Flask.Django.Tornado框架 区别 1  Django:重武器,内部包含了非常多组件:ORM.Form.ModelForm.缓存.Session.中间件.信号等... 2   Flas ...

  2. 爬取页面InsecureRequestWarning: 警告解决笔记

    InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is s ...

  3. Ubuntu 16.04安装MySQL(5.7.18)

    此篇为http://www.cnblogs.com/EasonJim/p/7139275.html的分支页. 安装MySQL前需要做如下了解: 1.MySQL各类型版本的区别,参考:http://ww ...

  4. 解决Docker中运行的MySQL中文乱码

    docker exec -it mysql bash 如果没有安装vim,请参考 解决Docker容器中不能用vim编辑文件 vim /etc/mysql/mysql.conf.d/mysql.cnf ...

  5. Hive 口袋手册

    2019-04-01 关键字:Hive 学习总结.Hive 基础 . Hive 进阶 .Hive 调优 . Hive 入门手册.Hive PDF 下载 本篇文章系本人就目前所掌握的知识对 Apache ...

  6. 【XSY2887】【GDOI2018】小学生图论题 分治FFT 多项式exp

    题目描述 在一个 \(n\) 个点的有向图中,编号从 \(1\) 到 \(n\),任意两个点之间都有且仅有一条有向边.现在已知一些单向的简单路径(路径上任意两点各不相同),例如 \(2\to 4\to ...

  7. Flask 模板系统

    模板 基本数据类型 可以执行python语法,如:dict.get(), list['xx'] 比django 更加亲近于 python 传入函数 - django,自动执行 - flask,不自动执 ...

  8. 初识 go 语言:方法,接口及并发

    目录 方法,接口及并发 方法 接口 并发 信道 结束语 前言: go语言的第四篇文章,主要讲述go语言中的方法,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示例,可直接运行. 方法,接 ...

  9. java远程文件操作

    有时在项目中,会有专门的文件服务器(windows),这个时候我们需要对文件进行操作时,就不能像操作本地文件那样操作文件服务器的文件.这时候就可以用SmbFile来操作了. 首先添加jar包,mave ...

  10. 第十八节、基于传统图像处理的目标检测与识别(HOG+SVM附代码)

    其实在深度学习中我们已经介绍了目标检测和目标识别的概念.为了照顾一些没有学过深度学习的童鞋,这里我重新说明一次:目标检测是用来确定图像上某个区域是否有我们要识别的对象,目标识别是用来判断图片上这个对象 ...