麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

論Web開發(fā)如何讀取上傳的xls的內(nèi)容

2019-11-09 15:19:23
字體:
供稿:網(wǎng)友

這一篇博客應(yīng)該是接著我之前一篇博客:“ 論前后臺如何實現(xiàn)web中文件下載功能”http://blog.csdn.net/QQ_27949963/article/details/54286957的。 現(xiàn)在我想要分享的內(nèi)容是如何實現(xiàn)對web中上傳的xls表格里的內(nèi)容進(jìn)行讀取并批量保存的,而我要實現(xiàn)的功能就是批量保存用戶。 首先上傳文件。 前臺jsp內(nèi)容:

<form id="uploadXlsForm" action="${ctx}/upLoadxls.do" enctype="mult前臺上傳后的結(jié)果判斷,js代碼:

function addPatchUser(){ if($('#userxls').val()){ $("#uploadXlsForm").
AjaxSubmit({ success:function(data){//圖片上傳成功時 console.log(data); if(data==0){ art.dialog({icon: 'warning',time:2, content:'文件格式或內(nèi)容錯誤,請檢查!' }); }else{ art.dialog({icon: 'warning',time:2, content:'批量用戶增加成功!' }); $('#table').jqGrid('setGridParam',{datatype:'json',page:1}).trigger("reloadGrid"); $('#pathcDialog').dialog('close'); } }, error:function(xhr){ alert('上傳失敗!'); } }); }else{ art.dialog({icon: 'warning',time:2, content:'請上傳批量增加用戶文件!' }); return false; }}

前臺效果圖: 這里寫圖片描述 后臺接收文件,首先引入jar:commons-fileupload 或者添加依賴

<dependency> <groupId>tomcat</groupId> <artifactId>commons-fileupload</artifactId> <version>1.0-5.5.23</version> </dependency>

實現(xiàn)代碼: 控制器:

/** * 接收上傳的xls * * @param response * @param data */ @RequestMapping(value = "/upLoadxls") @ResponseBody public int upLoadxls(HttpServletResponse response, HttpServletRequest request, ServletRequest req) { try { DiskFileUpload du = new DiskFileUpload(); List<?> list = du.parseRequest(request);// 解析請求,得到一個List對象 return userService.getUserInfoFromUpLoadxml(list); } catch (Exception e) { LOGGER.error(e.getMessage(), e); } return 0; }

然后讀取xls里面的內(nèi)容。需要引入jar:poi-ooxml 或者添加依賴:

<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.12</version> </dependency>

然后開始讀取文件內(nèi)容,如果是文件的話,在利用HSSFWorkbook類轉(zhuǎn)化為WorkBook. 代碼如下:

@Override @Sup最后一步就是批量保存xls中的內(nèi)容,上面操作已經(jīng)讀取了xls文件,下面就是記性一行一行的單元格的內(nèi)容的獲取了。其中需要注意的是 HSSFRow row = sheet.getRow(index);//讀取指定行 row.getCell(i).getNumericCellValue()//獲取指定行的內(nèi)容。 getNumericCellValue()為獲取的內(nèi)容都是數(shù)據(jù),獲取到的是double類型。getCellType()=0 getStringCellValue()獲取到的內(nèi)容是字符串,獲取到的是String類型,但是這兩個獲取之前一定要判斷row.getCell(index)指定單元格的內(nèi)容是都非空,否則的話會報IllegalStateException異常。 下面是我進(jìn)行用戶信息批量插入的方法,這里只選擇了幾項信息插入。

@Override public void batchAddUser(final HSSFSheet sheet) { StringBuilder sb = new StringBuilder(); sb.append(" INSERT INTO "); sb.append(" WTPT_USER(USERID,USERNAME,SEX,TELEPHONENO,IDTYPE,IDNUM "); sb.append(" VALUES(?,?,?,?,?,?) "); dao.getJdbcTemplate().batchUpdate(sb.toString(), new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int rs) throws SQLException { int num = 1; int i = 0; int a = 0; HSSFRow row = sheet.getRow(rs + 2);//加2是因為我的表格里的標(biāo)題占了兩行 if (row != null) { String userId = new RandomGUID().toString(); ps.setString(num++, userId); ps.setString(num++, row.getCell(a++).getCellType() == 0 ? String.valueOf(row.getCell(i).getNumericCellValue()): row.getCell(i).getStringCellValue()); ++i; if(row.getCell(i).getStringCellValue().equals("男")) { ps.setInt(num++, 1);} else if (row.getCell(i).getStringCellValue().equals("女")) { ps.setInt(num++, 0); } else { ps.setInt(num++, 2); } ++i; String telephone = row.getCell(i) == null ? null: String.valueOf(row.getCell(i).getNumericCellValue()); ps.setString(num++, telephone);// 電話 ++i;if (row.getCell(i).getStringCellValue().equals("護(hù)照")) { ps.setInt(num++, 2);} else if (row.getCell(i).getStringCellValue().equals("駕照")) { ps.setInt(num++, 3);} else { ps.setInt(num++, 1); } ++i; ps.setString(num++,row.getCell(i) == null ? null : String.valueOf(row.getCell(i).getStringCellValue()));// 證件號碼 ++i; ps.setString(num++, row.getCell(i) == null ? null : row.getCell(i).getStringCellValue());if (row.getCell(i++).getStringCellValue().equals("是")) { SysUser sysUser = new SysUser(); sysUser.setId(new RandomGUID().toString()); sysUser.setUserId(userId);if (row.getCell(i) != null) {try { sysUser.setLoginCode(row.getCell(i).getStringCellValue()); } catch (IllegalStateException e) { sysUser.setLoginCode(String.valueOf(row.getCell(i).getNumericCellValue()));} } else { sysUser.setLoginCode(telephone); } ++i; if (row.getCell(i) != null) { try { sysUser.setPass
Word(md5Digest.md5Digest(row.getCell(i).getStringCellValue())); } catch (IllegalStateException e) { sysUser.setPassword(MD5Digest.md5Digest(String.valueOf(row.getCell(i).getNumericCellValue()))); } } else { sysUser.setPassword(MD5Digest.md5Digest("1234")); } sysUserDAO.add(sysUser); } } } @Override public int getBatchSize() { return sheet.getLastRowNum() - 1; } }); }

到此就結(jié)束了,這樣就可以上傳一個xls的文件,并且讀取內(nèi)容,進(jìn)行批量保存了。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品区一区二区三区 | 成人男女免费视频 | 中文字幕在线观看网址 | 久久亚洲国产午夜精品理论片 | 久在线草 | 亚洲第一页中文字幕 | 中午字幕无线码一区2020 | 国产精品一区在线观看 | 毛片大全 | 日韩一级毛毛片 | av成人免费看| 美女性感毛片 | 久久国产精品99久久人人澡 | 国产欧美在线一区二区三区 | 精品一区二区三区免费毛片爱 | 精品国产一区二区三区久久久狼牙 | 国产精品片一区二区三区 | 久久国产免费 | 少妇一级淫片高潮流水电影 | 久久久久久久久淑女av国产精品 | 羞羞视频免费网站含羞草 | 亚洲视色| 日韩欧美高清片 | 爱爱插插视频 | 日本欧美一区二区 | 91精品国产综合久久男男 | 在线成人影视 | 精品69人人人人 | 国产免费传媒av片在线 | 91一级毛片 | 毛片在线视频观看 | 午夜免费网 | 欧美羞羞视频 | 免费黄色在线电影 | 久久久久国产精品久久久久 | 久国久产久精永久网页 | 中文字幕视频在线播放 | 精品欧美一区二区精品久久 | 粉嫩粉嫩一区二区三区在线播放 | 日韩精品二区 | 美女羞羞视频在线观看 |