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表的导入及对数据的读取,剩下的就是根据大家自身需求去操作这些数据了
愿你我共同成长!!!.....