为什么在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
,所以我只是避免这样做(通过上述操作)或在源代码中进行挖掘。