Apache POI 3.17中XSSFCell.setCellType(int)过时后的替代方案咨询
替代过时的
setCellType(int)方法(Apache POI 3.17) 嘿,我刚好踩过这个坑!在Apache POI 3.17版本中,XSSFCell.setCellType(int)确实已经被标记为过时了,官方推荐使用类型更安全的CellType枚举来替代旧的int常量。
直接替代方案
你原来的代码:
cell.setCellType(XSSFCell.CELL_TYPE_NUMERIC);
可以直接替换成:
import org.apache.poi.ss.usermodel.CellType; // ... cell.setCellType(CellType.NUMERIC);
为什么要这么改?
原来的XSSFCell.CELL_TYPE_*这类int常量属于特定实现类(XSSFCell)的旧API,而CellType枚举是org.apache.poi.ss.usermodel包下的通用接口层定义——不仅适用于XSSF(xlsx格式),也适用于HSSF(xls格式),同时枚举类型能避免传入无效int值的风险,类型安全性更高。
额外提示
如果你的场景是读取单元格数值而非主动设置类型,更推荐用DataFormatter来统一处理不同类型的单元格值,避免手动类型转换的麻烦;但如果确实需要主动设置单元格类型,上面的枚举方案就是官方指定的替代方式。
内容的提问来源于stack exchange,提问作者JLLMNCHR
相关产品推荐
相关产品推荐

