//创建行 每次从第二行开始创建
XSSFRow row = sheet.createRow(num);
XSSFCell cell0 = row.createCell(0);
cell0.setCellValue(excelMessage.getAddress());
XSSFCell cell1 = row.createCell(1);
cell1.setCellValue(excelMessage.getType());
XSSFCell cell2 = row.createCell(2);
//截取数字部分
cell2.setCellValue(getAddressNumber(excelMessage.getAddress()).toString());
XSSFCell cell3 = row.createCell(3);
cell3.setCellFormula("INT(C" + (num + 1) + ")");
XSSFCell cell4 = row.createCell(4);
cell4.setCellFormula("TEXT(((MOD(C" + (num + 1) + ",1))*10),0)");
XSSFCell cell5 = row.createCell(5);
cell5.setCellFormula("IF(B" + (num + 1) + "=\"BOOL\",(D" + (num + 1) + "-" + firstNumber + ")*8+E" + (num + 1) + ",(D" + (num + 1) + "-"+firstNumber+"))");
XSSFCell cell6 = row.createCell(6);
cell6.setCellValue("{\n" +
" \"tag\": \"");
XSSFCell cell7 = row.createCell(7);
cell7.setCellValue("\",\n" +
" \"type\": \"");
XSSFCell cell8 = row.createCell(8);
cell8.setCellValue("\",\n" +
" \"start\": ");
XSSFCell cell9 = row.createCell(9);
cell9.setCellValue(",\n" +
" \"len\": 0\n" +
" },");
XSSFCell cell10 = row.createCell(10);
cell10.setCellFormula("(G" + (num + 1) + "&A" + (num + 1) + "&H" + (num + 1) + "&LOWER(B" + (num + 1) + ")&I2&TEXT(F" + (num + 1) + ",0)&J" + (num + 1) + ")");
XSSFCell cell11 = row.createCell(11);
cell11.setCellFormula("CLEAN(K" + (num + 1) + ")");
//重新计算公式的意思
sheet.setForceFormulaRecalculation(true);
重点就是上面代码中最后一行