基于BootStrap的initupload()实现Excel上传和获取excel中的数据

简单说明:后边要做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)@ResponseBodyprivate 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的使用介绍,但是很多都不太好使,我做这个试了好久才成功,拿出来分享给大家。

原文地址:https://www.cnblogs.com/xuchao0506/p/9999836.html

时间: 2024-11-07 13:38:48

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

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

场景:mvc4中上传图片,批量上传,上传前浏览,操作.图片进度条. 解决:自定义jquery控件 没有解决:非图片上传时,会有浏览样式的问题; 解决方案; 1.样式 – bootstrap 的css和图标与metro-ui-css的部分css 2.js 自定义控件 3.后台 mvc4 ------------------------------------------------- 1. [class*=border-color] { border: 2px solid; } .border-c

基于bootstrap的fileinput插件实现上传

用户头像上传的Demo 1.引入文件css文件 <link rel="stylesheet" href="../../libs/bootstrap-3.3.7/css/bootstrap.min.css"><!--引入bootstrap的css文件--> <link rel="stylesheet" href="../../libs/bootstrap-fileinput-master/css/filein

基于 lua-resty-upload 实现简单的文件上传服务

今天了解了一下 lua-resty-upload 模块,并基于 lua-resty-upload 模块简单实现了一个基本的表单文件上传服务. lua-resty-upload 在 github 上的项目地址为: https://github.com/openresty/lua-resty-upload 从实现可以看到,其实 upload 服务的实现还是比较简单的,就一个源文件 lualib/resty/upload.lua,总的代码行数也只有 300 行不到. 下面我整理了一下搭建文件上传服务的

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

基于h5的图片无刷新上传(uploadifive) uploadifive简介 了解uploadify之前,首先了解来一下什么是uploadify,uploadfy官网,uploadify和uploadifive是一家的,他们都是基于jquery的插件,都支持多文件异步上传,支持显示上传进度,不同的是uploadify基于swfUpload这一开源无刷新上传插件开发,基于flash,而uploadifive则是基于html5,不依赖于flash. 基于他们的不同点,我们可以根据自己的需求来进行选

Excel上传并读取数据

最近一段时间,维护一个旧系统,其中有一个功能,是把Excel上传,并读取数据进行维护,然后转插入至SQL数据库中.下面Insus.NET使用asp.net 标准上传控件: <asp:FileUpload ID="FileUpload1" runat="server" /> Insus.NET习惯性,在每一个专案中,都会创建一个临时目录. 因为很多时候,我们处理一些临时文件,或是数据均可在此临时目录中进行.它有点像Windows下的临时目录一样. 上面代码

C#Excel上传批量导入sqlserver

前台: <x:FileUpload ID="btnUpField" runat="server" Label="上传Excel批量导入用户信息" ShowLabel="true" > </x:FileUpload> <x:Button ID="Button1" Text="上传" runat="server" Icon="Sys

基于jsp的AJAX多文件上传的实现

最近的项目开发中,遇到了一个多文件上传的问题,即在不刷新页面的情况下,上传多个文件至服务器.现总结分享如下: 本文主要采用了基于jsp的ajax,jquery,servlet等技术. 1.upload.jsp 点击上传时,调用对应的fileupload函数,通过ajax将文件异步传送到servlet中处理.注意在文件上载时,所使用的编码类型应当是"multipart/form-data",它既可以发送文本数据,也支持二进制数据上载. <%@ page language="

ASP.NET MVC编程入门--Excel上传

参考博客:ASP.NET MVC下使用文件上传 参考博客:NPOI使用手册 参考博客:ASP.Net MVC利用NPOI导入导出Excel 参考博客:C# NPOI 导入与导出Excel文档 兼容xlsx, xls 文件上传代码块 #region EXCEL上传 /// <summary> /// EXCEL上传 /// </summary> /// <param name="fileData"></param> /// <retu

java 后台解析excel上传数据 工具类

后台调用: MultipartFile file: List<String[]> excelDate package com.holike.crm.partner.sys; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.apache.poi.h