Java POI 导入Excel并解析

来源:互联网 发布:天津mac专柜在哪 编辑:程序博客网 时间:2024/06/05 16:00

       项目上碰到需要导入Excel表的数据,主要包括web端上传部分和spring后端代码。

      1、Web页面代码

      <input type="file" name="uploadfile" id="uploadfile" >,注意form里需增加encType="multipart/form-data"

      2、spring后台接收

      参数接收中增加@RequestParam("excelFile")MultipartFile excelFile

      3、Excel文件解析

      核心代码如下:

     

try{          InputStream inputStream = excelFile.getInputStream();              POIFSFileSystem fs = new POIFSFileSystem(inputStream);              HSSFWorkbook workbook = new HSSFWorkbook(fs);              //XSSFWorkbook workbook = new XSSFWorkbook(fs);                          HSSFSheet sheet = workbook.getSheetAt(0);              int rowNum = sheet.getLastRowNum();// 行              int cellNum;              HSSFRow row;              HSSFCell cell;              String value = "";                  for (int i = 1; i <= rowNum; i++) {                  row = sheet.getRow(i);                  cellNum = row.getLastCellNum();// 列                  recStrb = new StringBuffer("");                  for (int j = 0; j < cellNum; j++) {//对一行的每个列进行解析                      cell = row.getCell((short) j);                      cell.setEncoding(HSSFCell.ENCODING_UTF_16);                      if(j == 0){                      value = String.valueOf((int)cell.getNumericCellValue());//数字型的值                      }else if(j == 1){                      value = String.valueOf((int)cell.getNumericCellValue());                      }else if(j == 2){//                      value = cell.getStringCellValue();//字符型的值                      }else{                                            }              if (StringUtils.isEmpty(value)) {                          recStrb.append("null, ");              } else {                  recStrb.append("'" + value + "', ");//对取得的值进行处理              }                  }                  //数据的自定义处置                  if (i > 0) {//                      log.debug(recStrb.toString());                  recStrb.append("'"+super_parts_code+"', ");                      String strTemp = recStrb.toString();                      strTemp = strTemp.substring(0,strTemp.lastIndexOf(","));                      dataList.add(strTemp);                  }              }

2 2