我试图通过迭代行在excel中写入多个数据,有时工作正常,有时则行不通。我想迭代最多12行,每次该grouID都会得到更改。一段时间替换数据,有时抛出错误,因为无法从文本中获取数值
public void writeData(String GroupID) {
try {
File src = new File("File.xls");
Cell cell = null;
FileInputStream fis = new FileInputStream(src);
HSSFWorkbook wb = new HSSFWorkbook(fis);
HSSFSheet sh1 = wb.getSheetAt(0);
for (int i = 1; i < 12; i++) {
System.out.println("Entering into excel sheet");
cell = sh1.getRow(i).getCell(22);
System.out.println("Iterating cells");
if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
String str = NumberToTextConverter.toText(cell.getNumericCellValue());
System.out.println("**********Before Replacing**********");
System.out.println(str);
cell.setCellValue(GroupID);
} else {
System.out.println("We are not entering numeric data");
}
}
FileOutputStream fout = new FileOutputStream(new File("File.xls"));
wb.write(fout);
fout.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
答案 0 :(得分:0)
为了避免异常,您需要在访问其值之前检查单元格类型。在您的情况下,似乎该单元格有时不包含数字值。因此,在单元格上调用getCellType()
并根据其返回类型(字符串或数字)调用适当的方法(对于字符串-getStringCellValue()
和数字-getNumericCellValue()
)