1. 程式人生 > >POI執行EXCEL中的公式

POI執行EXCEL中的公式

當EXCEL中包含計算公式時,利用POI去執行的方法如下。

第一種,當你知道你要執行的workbook型別時(HSSF 或者XSSF),可以直接呼叫靜態方法,一次將workbook上的所有公式計算完畢。

File tempFile = new File("/somepath/test.xls");
InputStream tempFileStream = new FileInputStream(tempFile);
HSSFWorkbook workBook = new HSSFWorkbook(tempFileStream);
// 執行計算公式
HSSFFormulaEvaluator.evaluateAllFormulaCells(workBook);

注意:當你利用POI寫入單元格的內容不是Number型別,而是文字型別時。上述計算是不會執行的。


第二種: 遍歷整個workbook去執行:

FileInputStream fis = new FileInputStream("/somepath/test.xls");
Workbook wb = new HSSFWorkbook(fis); //or new XSSFWorkbook("/somepath/test.xls")
FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
for(int sheetNum = 0; sheetNum < wb.getNumberOfSheets(); sheetNum++) {
    Sheet sheet = wb.getSheetAt(sheetNum);
    for(Row r : sheet) {
        for(Cell c : r) {
            if(c.getCellType() == Cell.CELL_TYPE_FORMULA) {
                evaluator.evaluateFormulaCell(c);
            }
        }
    }
}