利用jxl实现excel文件上传解析,并获取地址获得高德经纬度
2018-10-26 10:45
330 查看
文件上传功能一直是我最头疼的地方,写这个博客只是作为记录,以便于自己下次能够找到模板
首先controller层:
[code]public static String url = "https://restapi.amap.com/v3/geocode/geo?key=332c42865845ba43bac0&address="; @RequestMapping("/social") @ResponseBody public void Social(MultipartFile file) { String result = null; try { List<Map<String, String>> list = new ArrayList<Map<String, String>>(); Workbook book = Workbook.getWorkbook(file.getInputStream()); logger.info("book:" + book); // 获得excel第一个的sheet文件 Sheet sheet = book.getSheet(0); // 获取文件的总列数 int rowNum = sheet.getRows(); for (int i = 2; i < rowNum; i++) { // 将数据从xls文件中解析出来,并存放到map中 Map<String, String> map = new HashMap<String, String>(); Cell cel0 = sheet.getCell(0, i); // 单位名称 map.put("company", cel0.getContents().trim()); Cell cel1 = sheet.getCell(1, i); // 应急值班电话 map.put("emergencyTelephone", cel1.getContents().trim()); Cell cel2 = sheet.getCell(2, i); // 联系人姓名 map.put("name", cel2.getContents().trim()); Cell cel3 = sheet.getCell(3, i); // 职务 map.put("post", cel3.getContents().trim()); Cell cel4 = sheet.getCell(4, i); // 联系电话 map.put("phone", cel4.getContents().trim()); Cell cel5 = sheet.getCell(5, i); // 应急装备 map.put("equipment", cel5.getContents().trim()); Cell cel6 = sheet.getCell(6, i); // 应急物资 map.put("material", cel6.getContents().trim()); String urll = url + map.get("company"); //开始请求 URL url1 = new URL(urll.toString()); URLConnection open = url1.openConnection(); InputStream input = open.getInputStream(); result = org.apache.commons.io.IOUtils.toString(input, "utf-8"); // 将成功的结果进行解析 JSONObject jsonObject = JSONObject.parseObject(result); String status = jsonObject.getString("status"); JSONArray geocodes = jsonObject.getJSONArray("geocodes"); String location = null; String city = null; if ("1".equals(status)) { if (geocodes != null && geocodes.size() > 0) { location = geocodes.getJSONObject(0).getString("location"); city = geocodes.getJSONObject(0).getString("city"); // 将得到的经纬度以","为标示,进行拆分 String[] str = location.split(","); if (!str[0].equals("0") && !str[1].equals("0")) { map.put("longitude", str[0]); map.put("latitude", str[1]); map.put("city", city); list.add(map); } } } } jointWorkService.insert(list); } catch (BiffException e) { logger.info(e.getMessage()); } catch (IOException e) { logger.info("文件读取异常:" + e); } } public static String toURLDecoded(String paramString) { if (paramString == null || paramString.equals("")) { return ""; } try { String str = new String(paramString.getBytes(), "UTF-8"); str = URLDecoder.decode(str, "UTF-8"); return str; } catch (Exception localException) { } return ""; }
然后是serviceImpl层:
[code]@Override public ZykjSocialJointWork insert(List<Map<String, String>> list) { for(Map<String,String> map : list){ int id = dtAreaService.selectByCity(map.get("city")); ZykjSocialJointWork jointWork = new ZykjSocialJointWork(); jointWork.setCompany(map.get("company")); jointWork.setEmergencyTelephone(map.get("emergencyTelephone")); jointWork.setName(map.get("name")); jointWork.setPost(map.get("post")); jointWork.setPhone(map.get("phone")); jointWork.setEquipment(map.get("equipment")); jointWork.setMaterial(map.get("material")); jointWork.setLongitude(map.get("longitude")); jointWork.setLatitude(map.get("latitude")); jointWork.setCreateTime(new Date()); jointWork.setAreaId(id); jointWorkDao.insert(jointWork); } return null; }
相关文章推荐
- 利用 js-xlsx 实现 Excel 文件导入并解析Excel数据成json格式的数据并且获取其中某列数据
- Java Web获取数据库数据,利用jxl实现数据导出成Excel文件
- JAVA利用ajaxfileUpload.js和poi实现excel文件上传存取
- OAF_文件系列9_实现OAF解析Excel并读取至数据库JXL
- java实现excel文件上传并解析内容保存到数据库中
- 利用Hadoop的FileSystem create方法获取 FSDataOutputStream 实现文件的上传
- ajax利用FormData、FileReader实现多文件上传php获取
- 利用 js-xlsx 实现 Excel 文件导入并解析Excel数据成json格式的数据
- koa上传excel文件并解析的实现方法
- ocupload、struts2实现excel文件上传,poi解析
- Excel文件上传,解析,下载(一 文件上传,使用MultipartFile来实现)
- Java程序员从笨鸟到菜鸟之(一百零五)java操作office和pdf文件(三)利用jxl实现数据导出excel报表以及与POI的区别
- 利用O’Reilly公司的cos实现文件上传前获取请求参数
- 利用FtpClient实现上传下载及获得文件目录
- 《JavaWeb---简单应用---练习JDBC,JSTL》---上传Excel文件,利用工具包解析,将数据储存到数据库中,可以查询删除
- java实现excel文件上传,解析,导入
- Spingboot项目实现登陆(H2DB和图片验证码)+上传文件+解析EXCEL
- Android编程实现根据经纬度查询地址并对获取的json数据进行解析的方法
- 利用JXL实现对于excel-2000/2003版本的文件进行读写操作
- Java程序员从笨鸟到菜鸟之(一百零五)java操作office和pdf文件(三)利用jxl实现数据导出excel报表以及与POI的区别