2011-03-29 5 views
2

현재 Apache POI를 사용하여 (나중에 읽고 편집 할) 빈 Excel 파일을 만듭니다. 문제는 셀을 가져 오려고 할 때마다 항상 null 값을 얻는다는 것입니다. 처음 몇 개의 열과 행 (셀이 더 이상 null이 아님)을 초기화하려고했지만이 방법을 사용하면 새 행과 열을 삽입 할 수 없습니다. 행과 열의 수를 설정하지 않고 시트의 모든 셀을 초기화하는 방법은 무엇입니까? 감사합니다새 Excel 파일을 만들 때 셀을 초기화하는 방법 (Apache POI)

편집 : 안녕하세요 이것은 엑셀 파일을 만드는 내 코드입니다. 스프레드 시트의 행과 열이 없으므로 반복기를 사용하여 모든 셀을 초기화 할 수 없습니다.

FileOutputStream fileOut = new FileOutputStream(loc + formID +".xls"); 
     HSSFWorkbook workbook = new HSSFWorkbook(); 
     Sheet sheet = workbook.createSheet("Sheet1"); 
     for (Row row : sheet) { 
      for (Cell cell : row) { 
       CellStyle style = workbook.createCellStyle(); 
       style.setFillBackgroundColor(IndexedColors.BLACK.getIndex()); 
       cell.setCellValue(""); 
       cell.setCellStyle(style); 
      } 
     } 
     workbook.write(fileOut); 
     fileOut.flush(); 
     fileOut.close(); 

답변

4

MissingCellPolicy가 도움이 될 수 있습니다.

// Get the row, creating it if needed 
Row r = CellUtil.getRow(4, sheet); 
// Get the cell, creating it if needed 
Cell c = CellUtil.getCell(2, r); 
: 행에 getCell를 호출 할 때, 당신은 어떤 세포가 없었다 경우 어떤 일이 일어날 가지고 MissingCellPolicy, 예를 들어

Row r = sheet.getRow(2); 
Cell c = r.getCell(5, MissingCellPolicy.CREATE_NULL_AS_BLANK); 
c.setCellValue("This will always work, c will never be null"); 
org.apache.poi.ss.util.CellUtil도 너무 도움이 될 수 있습니다

를 지정할 수 있습니다

+1

'Cell c = CellUtil.getCell (2, r);'은 Cell C = CellUtil.getCell (r, 2)이어야합니다. – gordon613

+0

@Gagravarr CellUtil 클래스 P1을보고 싶습니다. 그래서 나는 그것을 만들 수 ..... ..... ( –

+0

@ KrunalPatel 그것은 [아파치 POI 클래스 내장] (https://poi.apache.org/apidocs/org/apache/poi/ss/util/CellUtil.html)입니다.)! – Gagravarr

관련 문제