2014-09-11 4 views
1

Apache POI를 사용하여 일부 Excel 파일을 작성 중이며 일부 셀에 "번호"유형이 있는지 확인하려고합니다. 값이 나는 번호로 셀에 표시 할 문자열입니다Apache POI 데이터 형식

style.setDataFormat(HSSFDataFormat.getBuiltinFormat("0")); 
    cell.setCellValue(Integer.valueOf(value)); 
    cell.setCellStyle(style); 

HSSFDataFormat format = workbook.createDataFormat(); 
    style.setDataFormat(format.getFormat("0")); 
    cell.setCellValue(Integer.valueOf(value)); 
    cell.setCellStyle(style); 

:

은 내가 다음을 시도했다.

두 가지 방법 모두 작동합니다. 그래서 HSSFDataFormat.getBuiltinFormat()과 getFormat() 사이에 차이점이 있습니까? 당신은 소스 코드에서 볼 수 있듯이

답변

1

하는 기능 getFormat 먼저 buildinFormats를 사용하여 답변

public short getFormat(String format) 
{ 
    ListIterator i; 
    int ind; 
    if (format.toUpperCase().equals("TEXT")) 
      format = "@"; 
     if (!movedBuiltins) 
     { 
     i = builtinFormats.listIterator(); 
     while (i.hasNext()) 
     { 
      ind = i.nextIndex(); 
      if (formats.size() < ind + 1) 
      { 
       formats.setSize(ind + 1); 
      } 
      formats.set(ind, i.next()); 
     } 
     movedBuiltins = true; 
    } 
    i = formats.listIterator(); 
    while (i.hasNext()) 
    { 
     ind = i.nextIndex(); 
     if (format.equals(i.next())) 
      return (short) ind; 
    } 
    ind = workbook.getFormat(format, true); 
    if (formats.size() <= ind) 
     formats.setSize(ind + 1); 
    formats.set(ind, format); 
    return (short) ind; 
} 
+0

감사합니다! – xcoder