当java操作excel表格的时候,有时候通过公式计算比直接后台计算要方便,所以公式计算的重要性体现了出来
// 单元格类型
cell.setCellType(CellType.FORMULA.getCode());
// 公式
cell.setCellFormula("SUM(J20:J"+(count+1)+")/SUM(G20:G"+(count+1)+")");
单元格类型有这些
public enum CellType {
@Internal(
since = "POI 3.15 beta 3"
)
_NONE(-1), // 无类型
NUMERIC(0), // 数值类型,整数,小数,日期
STRING(1), // 字符串
FORMULA(2), // 公式
BLANK(3), // 空单元格,空值但是有样式
BOOLEAN(4), // 布尔值
ERROR(5); // 错误单元格
注意
当cell.setCellValue(data1.toString())
的时候,如果进行数值的公式计算,则需要进行类型转换cell.setCellValue(Double.parseDouble(data1.toString()))
,否则算不出结果,会一直为0,但是双击单元格需要计算的数据,又会展示有值
当然,最后还需要进行强制公式计算
sheet.setForceFormulaRecalculation(true);// 重新计算公式的意思