如何在创build新的Excel文件时初始化单元格(Apache POI)

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

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

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(); 

您可能会发现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);