Java实现的以SSM或SSH框架为核心的批量新增(导入)

前端(jsp页面):

<div class="fr">
    <input type="hidden" value="${count}" id="count"/>         	
    <!--导入-->
    <button id="btnImport" type="button"  class="btn-sm btn-export">上传</button>
    <!--表单提交的文件-->
    <form id="formUpload" method="post" enctype="multipart/form-data" action="${BASE_PATH}/files/upload">
        <input type="file" id="true-import" style="display: none" name="file"/>
    </form>
</div>

前端(js文件):实现弹出

/* 上传按钮点击事件 */
            $("#btnImport").click(function(){
            	$("#true-import").val("");
            	$("#count").val("");
            	$("#true-import").trigger("click");
            });
            $("#true-import").change(function(){
            	$("#formUpload").submit();
            });

前端(js文件):实现信息提示

/**
 * 批量新增提示
 */
$(function() {
        //页面一加载就判断
	$(document).ready(function() {
                //等待一秒执行
		setTimeout(function(){
                //数量不为空,且数量不为0,新增成功
		if($("#count").val()!=""&&$("#count").val()!=0){
			alert("success")
                        //判断完毕后清空,防止无效提示
			$("#count").val("");
                 //数量为0,新增失败
		}else if($("#count").val()=="0"){
			alert("failed")
                         //判断完毕后清空,防止无效提示
			$("#count").val("");
		}
	},1000)
	});
	
});

后端(Controller.java):

@RequestMapping("/upload")
	public String upload(@RequestParam("file") CommonsMultipartFile file,HttpServletRequest request, HttpServletResponse response,Model model) {
		try {
			int count=0;//新增的数据条数
			// 把传递过来的file转换为输入流
			InputStream in = file.getInputStream();
			/*XSSFWorkbook readWb = new XSSFWorkbook(in);*///xlxs文件
			 HSSFWorkbook readWb = new HSSFWorkbook(in); //xls文件
			// 外层循环,是文件行数的循环,循环的对象是文件的每一行
			for (int i = 0; i < readWb.getNumberOfSheets(); i++) {
				HSSFSheet sheet = readWb.getSheetAt(i);
				//定义一个数组用来接收,String[4]实际长度根据字段自己定义,也可以用readWb.getNumberOfSheets()
				String[] strArr = new String[4];
				// 内层循环,是行的列的循环,循环的对象是行的每一个列
				for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
					HSSFRow hssfRow = sheet.getRow(rowNum);
					if (hssfRow != null) {
						for (int colNum = 0; colNum < hssfRow.getPhysicalNumberOfCells(); colNum++) {
							/*System.out.println(hssfRow.getCell(colNum));*/
							strArr[colNum]=hssfRow.getCell(colNum).toString();
						}
						// 将数组的值挨个传递到map中,传递给新增的方法
						Map map = new HashMap();
						map.put("key1", strArr[0]);
						map.put("key2", strArr[1]);
						map.put("key3", strArr[2]);
						map.put("key4", strArr[3]);
						count++;
						//调用新增的方法
						XXXService.add(map);
					}
				}
			}
			//把新增的行数存到视图里,后续可以判断
			model.addAttribute("count",count);
			return "url/xxxx";
		} catch (Exception e) {
			e.printStackTrace();
			//把新增的行数存到视图里,后续可以判断
			model.addAttribute("count","0");
			return "url/xxxx";
		}
	}

其他层的方法:

//根据map的实现的,dao层,service层代码,sql语句等
//根据所选框架的不同,请自行选择
//过于简单不在此赘述

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值