2011-03-29 64 views
2

我目前使用Apache POI来创建空的excel文件(我将在后面阅读和编辑)。问题是,每当我尝试获取单元格时,我总是会得到一个空值。我尝试初始化前几列和行(单元不再为空),但采用这种方法,我无法插入新的行和列。我怎样才能够初始化表单的所有单元格而不必设置行数和列数?谢谢如何在创建新的Excel文件(Apache POI)时初始化单元格

编辑:嗨,这是我创建excel文件的代码。我无法使用迭代器初始化所有单元格,因为电子表格没有行和列。

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可以根据您的需要帮助。当一排叫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还可以帮助过:

// 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); 
+1

'Cell c = CellUtil.getCell(2,r);'应该是'Cell c = CellUtil.getCell(r,2);' – gordon613 2012-03-20 16:46:31

+0

@Gagravarr我想要看到CellUtil类P1给我举例说明那个类所以我可以创建它..... :( – 2014-11-21 10:41:12

+0

@KrunalPatel它是[建在Apache POI类](https://poi.apache.org/apidocs/org/apache/poi/ss/util/CellUtil.html )! – Gagravarr 2014-11-21 12:37:05

相关问题