2017-12-20 14 views
0

안녕하세요 jxl을 사용하여 Excel 파일에서 날짜 값을 읽으려고하는데 다른 값에는 문제가 없지만 날짜에는 오류가 표시됩니다. 잘못된 형식 : "342/DEC/17" 내가 뭔가를 놓친 거지 "/ DEC/17"에, 부정한다'java.lang.IllegalArgumentException 오류'잘못된 형식의 'jxl을 사용하여 형식이 잘못되었습니다

java.lang.IllegalArgumentException가 말한다?

public static Object[][] readRegisters(String file) throws IOException, BiffException { 

      ArrayList<Object[]> response = new ArrayList(); 
     Workbook workbook = Workbook.getWorkbook(new File(file)); 
     String[] names = workbook.getSheetNames(); 
     int shSrv = -1; 
     for (int i = 0; i < names.length; i++) { 
      if (names[i].toLowerCase().equals("registers")) { 
       shSrv = i; 
       break; 
      } 
     } 
     if (shSrv < 0) { 
      errores.error("file doesn't contain a sheet called registers"); 
      return new Object[0][0]; 
     } 
     Sheet sheet = workbook.getSheet(shSrv); 

     Cell[] row = sheet.getRow(0); 

     int idsrv = -1; 
     int sup = -1; 
     int ver = -1; 
     int pag = -1; 

     for (int i = 0; i < row.length; i++) { 
      Cell cell = row[i]; 
      if (cell.getContents().equals("ID")) { 
       idsrv = i; 
      } 
      if (cell.getContents().equals("DATE")) { 
       sup = i; 
      }   
      if (cell.getContents().equals("MONEY")) { 
       pag = i; 
      } 

     } 
     if ((idsrv < 0) || (sup < 0) || (pag < 0)) { 
      errores.error("columns name error"); 
      return new Object[0][0]; 
     }  

//THIS IS WHERE I READ THE DATE > DateTime.parse((row[sup].getContents())) 
     for (int i = 1; i < sheet.getRows(); i++) { 
      row = sheet.getRow(i);    
      response.add(new Object[]{DateTime.parse(row[sup].getContents()),Integer.parseInt(row[idsrv].getContents()), Integer.parseInt(row[pag].getContents()) > 0 }); 

     } 

     Object[][] table = createBiArrayFromArrayList(response); 
     return table; 

    } 

답변

0

을 (다소) 그것을 해결 상기 "용액"문자열

로 날로부터 엑셀 파일의 열 형식을 변경했다