package org.springblade.modules.riverway.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springblade.modules.riverway.entity.RiverwayR; import org.springblade.modules.riverway.mapper.RiverwayMapper; import org.springblade.modules.riverway.service.RiverwayService; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.io.InputStream; import java.text.DecimalFormat; import java.util.List; @Service @DS("slaves") public class RiverwayServiceImpl extends ServiceImpl implements RiverwayService { @Override public void upLoadFile(MultipartFile file) { try{ InputStream in = file.getInputStream(); Workbook workbook = null; try{ workbook = new HSSFWorkbook(in); }catch(Exception e){ workbook = new XSSFWorkbook(in); } int numberOfSheets = workbook.getNumberOfSheets(); //第一个sheet for (int j=0;j1){ waterLine.setCjtime(temp[1]); }*/ //有效行数 int rowNubms = sheet1.getPhysicalNumberOfRows(); for (int i = 1; i < rowNubms; i++) { Row rowi = sheet1.getRow(i); if (rowi == null) { continue; } RiverwayR riverwayR = new RiverwayR(); Cell cell1 = rowi.getCell(0);//河段编码 if(cell1.getCellType() == Cell.CELL_TYPE_BLANK) { continue; } Cell cell2 = rowi.getCell(1);//河段名称 Cell cell3 = rowi.getCell(2);//河名 Cell cell4 = rowi.getCell(3);//河段类型 Cell cell5 = rowi.getCell(4);//河段长 Cell cell6 = rowi.getCell(5);//起点经度 Cell cell7 = rowi.getCell(6);//起点纬度 Cell cell8 = rowi.getCell(7);//终点经度 Cell cell9 = rowi.getCell(8);//终点纬度 Cell cell10 = rowi.getCell(9);//关联文站编码 Cell cell11 = rowi.getCell(10);//关联水文站起点距 Cell cell12 = rowi.getCell(11);//默认水面线 //此处判断为null,以防get值的时候 报空指针 DecimalFormat df = new DecimalFormat("0"); String hdbm = (cell1 != null) ? getCellValue(cell1) : null; String hdmc = (cell2 != null) ? getCellValue(cell2) : null; String hm = (cell3!= null) ? getCellValue(cell3) : null; String hdlx = (cell4 != null) ? getCellValue(cell4) : null; String hdc = df.format(cell5.getNumericCellValue()); String qdjd = (cell6 != null) ? getCellValue(cell6) : null; String qdwd = (cell7 != null) ? getCellValue(cell7) : null; String zdjd = (cell8 != null) ? getCellValue(cell8) : null; String zdwd = (cell9 != null) ? getCellValue(cell9) : null; String glbm = (cell10 != null) ? getCellValue2(cell10) : null; String glqdj = (cell11 != null) ? getCellValue(cell11) : null; String mrsmx = (cell12 != null) ? getCellValue(cell12) : null; riverwayR.setRiverCode(hdbm); riverwayR.setRiverway(hdmc); riverwayR.setRiverName(hm); riverwayR.setRiverType(hdlx); riverwayR.setRiverLength(Integer.parseInt(hdc)); riverwayR.setRiverOrigin(qdjd); riverwayR.setQdLat(qdwd); riverwayR.setDestination(zdjd); riverwayR.setZdLat(zdwd); riverwayR.setGlCode(glbm); riverwayR.setGlQdj(glqdj); riverwayR.setDefaultSmx(mrsmx); //河段新增 RiverwayServiceImpl.super.save(riverwayR); in.close(); //关闭流 } } } catch (Exception e) { e.printStackTrace(); } } @Override public List selectName() { return baseMapper.selectName(); } private String getCellValue2(Cell cell){ String value =""; switch (cell.getCellType()){ case Cell.CELL_TYPE_STRING: value = cell.getStringCellValue(); break; case Cell.CELL_TYPE_NUMERIC: DecimalFormat df = new DecimalFormat("0"); value = df.format(cell.getNumericCellValue()); break; case Cell.CELL_TYPE_BLANK: value = ""; break; case Cell.CELL_TYPE_BOOLEAN: value = String.valueOf(cell.getBooleanCellValue()); break; case Cell.CELL_TYPE_ERROR: value = String.valueOf(cell.getErrorCellValue()); break; case Cell.CELL_TYPE_FORMULA: value = String.valueOf(cell.getCellFormula()); break; } return value; } private String getCellValue(Cell cell){ String value =""; switch (cell.getCellType()){ case Cell.CELL_TYPE_STRING: value = cell.getStringCellValue(); break; case Cell.CELL_TYPE_NUMERIC: value = String.valueOf(cell.getNumericCellValue()); break; case Cell.CELL_TYPE_BLANK: value = ""; break; case Cell.CELL_TYPE_BOOLEAN: value = String.valueOf(cell.getBooleanCellValue()); break; case Cell.CELL_TYPE_ERROR: value = String.valueOf(cell.getErrorCellValue()); break; case Cell.CELL_TYPE_FORMULA: value = String.valueOf(cell.getCellFormula()); break; } return value; } }