excle报盘之导入报盘

这篇博客主要介绍了在前端使用jsp与后端servlet进行交互,实现Excel报盘数据的导入。通过ModelMap和自定义的BpWebDto bean类处理数据,调用importExcelMng服务进行数据保存和校验,校验结果通过JSONUtil返回前端,供ajax接收并显示提示信息。
摘要由CSDN通过智能技术生成

前端jsp:


	<div class="blockhead">
					<span>导入报盘</span>
				
						<form id="importForm" action="" method="post" enctype="multipart/form-data" style="float: right;margin-right: 20px;padding-top: 3px;">
							<input type="file" name="textfield" class="file" style="width:170px;" id="textfield" height="22px"  οnchange="checkFile(this)"  /> 
							<a href="javascript:void(0)" style="background-color: #ff6600;margin-left: 0px;" οnclick="importData()">导入</a>
							
	
						</form>
					
				</div>

function checkFile(file){
		var filepath = file.value;
		if(filepath ==""){
			alert("请选择文件");
			return ;
		}
		filepath=filepath.substring(filepath.lastIndexOf('.')+1,filepath.length);
		if(filepath != 'xls'){
			mbox({
				title : "系统提示",
				message : "只能上传指定的模板文件"
			});
			$("#importForm")[0].reset();
		}
	}
	//报盘导入数据
	function importData() {
		
		if($("#azj011").val() >= 300){
			mbox({
				title : "系统提示",
				message : "上传数据达到最大限制!"
			});
			return ;
		}
		
		var filepath =$("#textfield").val();
		if(filepath ==""){
			mbox({
				title : "系统提示",
				message : "请选择文件!"
			});
			return ;
		}
		
			
			//显示蒙版
			var cover = $("<div class='covermask'/>").css({
				width : $(window).width(),
				height : $(window).height(),
				opacity : 0.7,
				"z-index" : 999
			}).appendTo($("body"));
			$("body").append($("<img style='z-index: 999;' class='loading' src='/icon/loading.gif'/><span style='z-index: 999;' class='loadingspan'>数据处理中,请稍等...</span>"));
			
//				$("#importForm").attr("action","${base!}/get_importdata.do?id=+'id + '&aab301=${b304!}&funid=" + $("#funid").val());
			$.ajaxFileUpload({
				url: "${base!}/get_importdata.do?Id="_id,            
				secureuri:false,
				fileElementId: 'textfield',
				dataType: 'json',
				success: function (data, status){
					if(data.hasError == "true"){
						var errors = [];
						for(var key in data){
							if(key != "hasError"){
								errors.push("第" + key + data[key]);
							}
						}
						mbox({
							title : "系统提示",
							message : errors.join("<br>"),
							onClose : function(){
								$(".loading,.covermask,.loadingspan").remove();
								refreshPage();
							}
						});
					}else if(data.status == "2"){
						mbox({
							title : "系统提示",
							message : data.message,
							onClose : function(){
								$(".loading,.covermask,.loadingspan").remove();
								refreshPage();
							}
						});
					}else if(data.status == "4"){
						mbox({
							title : "系统提示",
							message : data.message,
							onClose : function(){
								//刷新列表信息,以及数统计
// 								goSelectPage();
								///refreshLocation("1", "");
								$(".loading,.covermask,.loadingspan").remove();
								refreshPage();
							}
						});
					}
				},
				error: function (data, status, e){
					mbox({
						title : "系统提示",
						message : "上传失败",
						onClose : function(){
							$(".loading,.covermask,.loadingspan").remove();
							refreshPage();
						}
					});
				}
			});
		
	}
注:此处mbox 及 
refreshPage();
是提示框和刷新函数,此处忽略.


servlet:

@ResponseBody
	@RequestMapping("get_importdata.html")
	public void importData(MultipartHttpServletRequest request, String Id, ModelMap model, HttpServletResponse response){
		
		
		BpWebDto dto = new BpWebDto();
		dto.setId(Id);
		Iterator<String> fileIter = request.getFileNames();
		String message="";
		if (!fileIter.hasNext()) {
			message="模板文件错误,请查看!";
			JSONUtil.writejson(response, "{'status' : '2', 'message' : '" + message + "'}");
			return;
		}
		CommonsMultipartFile file = (CommonsMultipartFile) request.getFile("textfield");
		String fileName = file.getOriginalFilename();
		if (!fileName.endsWith(".xls")) {
			message="模板文件错误,请查看!";
			JSONUtil.writejson(response, "{'status' : '2', 'message' : '" + message + "'}");
			return;
		} else if(StringUtils.isBlank(Id)){
			message="请先填写并保存基本信息!";
			JSONUtil.writejson(response, "{'status' : '2', 'message' : '" + message + "'}");
			return;
		} else {
			//保存到临时表中
//			bpMng.importData(file, dto);
//			//调用过程
//			message = bpMng.importDataCheck(file, dto);
			//在Java中做出校验
			try {
				ExcelBean<BpWebDto> excelBean = importExcelMng.tempSaveInJavaBean(file.getInputStream(), dto);
				if(excelBean == null){//达到最大数量限制
					message = "数量已达到最大值。";
				}else if(excelBean.hasErrors()){//报盘文件存在错误信息
					excelBean.getErrors().put("hasError", "true");
					JSONUtil.write(response, excelBean.getErrors());
					return;
				}else{//通过校验,数据保存至临时表
					importExcelMng.saveData(excelBean.getDatas(), dto);
					message = bpMng.imp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值