为什么在Apache POI中更改单元格类型是非法的?下面的代码导致IllegalStateException: Cannot get a error value from a numeric cell

Cell mycell = myrow.createCell(0);

// Make it numeric by default.
mycell.setCellType(Cell.CELL_TYPE_NUMERIC);

if (someCondition) {
  mycell.setCellType(Cell.CELL_TYPE_STRING); // IllegalStateException
}


也许有办法解决这个问题(例如不引入其他逻辑)?

最佳答案

我不确定这是在避免您的“没有其他逻辑”,但是这里有:

Cell mycell = myrow.createCell(0);

// Make it numeric by default.
int cellType = Cell.CELL_TYPE_NUMERIC;

if (someCondition) {
  cellType = Cell.CELL_TYPE_STRING;
}

mycell.setCellType(cellType);


Javadoc没有说明为什么会抛出IllegalStateException,所以我只是避免这样做(通过上述操作)或在源代码中进行挖掘。

10-06 14:59