POI導出excel執行自動求和


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文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM