1、核心代碼
/*設置單元格樣式*/ XSSFCellStyle cellStyle = workbook.createCellStyle();// 單元格樣式 cellStyle.setWrapText(true);// 自動換行 cellStyle.setAlignment(HorizontalAlignment.CENTER);// 水平居中 cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 垂直居中 cellStyle.setBorderBottom(XSSFCellStyle.BORDER_THIN); cellStyle.setBorderLeft(XSSFCellStyle.BORDER_THIN); cellStyle.setBorderRight(XSSFCellStyle.BORDER_THIN); cellStyle.setBorderTop(XSSFCellStyle.BORDER_THIN); Font font = workbook.createFont(); font.setFontName("仿宋_GB2312"); font.setFontHeightInPoints((short) 9); cellStyle.setFont(font); int totalCell = sheet.getRow(3).getLastCellNum();// 獲取第四行列的數量 Cell cell;// 單元格 String colString;//長度轉成ABC后的列 String sumString;//求和公式 for (int i = 2; i < totalCell; i++) {// 我從第二列開始每列都執行求和操作 因此i=2 cell = row.createCell(i);// 創建單元格 cell.setCellStyle(cellStyle);// 設置單元格樣式 colString = CellReference.convertNumToColString(i); //長度轉成ABC列 //求和公式 求i9至i12單元格的總和 sumString = "SUM(" + colString + "9:" + colString + 12 + ")"; cell.setCellFormula(sumString);// 把公式塞入合計列 }
2、前面的代碼不起作用的話,建議在下面這行代碼:workbook.write(out);// 輸出Excel內容,生成Excel文件 之前,添加這個語句:workbook.setForceFormulaRecalculation(true);// 執行公式。
如:
workbook.setForceFormulaRecalculation(true);// 執行公式 workbook.write(out);// 輸出Excel內容,生成Excel文件