EXCEL文件导入功能(前端代码+后端)

今天收到一个需求,要求做一个excel报表的导入页面。在网上找了一些发现写的不是很明白,所以现在整理一下自己写的代码,供大家参考,希望对大家有所帮助。

前端(jsp)

<div class="form-group" id="thumbnailUploadContainer" class="col-sm-10" style="float: left; margin-right: 50px;">
	<input id="articleImageFile" name="excelFile" type="file" class="form-control" style="width: 300px; display: inline;" />
	<input id="saveZipButton" type="button" style="width: 60px;height: 35px;" value="上传" />
</div>

参数方面大家根据自己需求再调整吧。

前端(js)

js方面我采用的是ajax传递参数

//导入excel文件
	$("#saveZipButton").on(click, function(){			
		  var formData = new FormData();
		    var name = $("#articleImageFile").val();
		    formData.append("file",$("#articleImageFile")[0].files[0]);
		    formData.append("name",name);//这个地方可以传递多个参数
		    $.ajax({
		        url :  webRoot + "/deviceinfoup/export",
		        type : POST,
		        async : false,
		        data : formData,
		        // 告诉jQuery不要去处理发送的数据
		        processData : false,
		        // 告诉jQuery不要去设置Content-Type请求头
		        contentType : false,
		        beforeSend:function(){
		            console.log("正在进行,请稍候");
		        },
		        success : function(responseStr) {
		            if(responseStr=="01"){
		                alert("导入成功");
		            }else{
		                alert("导入失败");
		            }
		        }
		    });
	});

后端(springmvc)

// excel导入
	@RequestMapping("/export")
	public void export(@RequestParam("file") MultipartFile file,
			HttpServletRequest request, HttpServletResponse response) {
		try {
			// @RequestParam("file") MultipartFile file 是用来接收前端传递过来的文件
			// 1.创建workbook对象,读取整个文档
			InputStream inputStream = file.getInputStream();
			POIFSFileSystem poifsFileSystem = new POIFSFileSystem(inputStream);
			HSSFWorkbook wb = new HSSFWorkbook(poifsFileSystem);
			// 2.读取页脚sheet
			HSSFSheet sheetAt = wb.getSheetAt(0);
			// 3.循环读取某一行
			for (Row row : sheetAt) {
				// 4.读取每一行的单元格
				String stringCellValue = row.getCell(0).getStringCellValue(); // 第一列数据
				String stringCellValue2 = row.getCell(1).getStringCellValue();// 第二列
				// 写多少个具体看大家上传的文件有多少列.....
				// 测试是否读取到数据,及数据的正确性
				System.out.println(stringCellValue);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
}

到这里就完成了对excel表的导入及对数据的读取,剩下的就是根据大家自身需求去操作这些数据了

愿你我共同成长!!!.....

经验分享 程序员 微信小程序 职场和发展