POI對公式的支援
POI對公式的支援
2009年11月26日 09:48:00 山巔 閱讀數:7078 標籤: stringc 更多
個人分類: POI
版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/shandian534/article/details/4876018
一、寫入公式:
1、取得單元格 cell = contentRow.createCell(6);
2、設定單元格的型別為公式 cell.setCellType(HSSFCell.CELL_TYPE_FORMULA);
3、設定單元格的樣式 cell.setCellStyle(excelUtil.getDoubleStyle(workbook));
4、設定單元格的公式 cell.setCellFormula("SUM(G3:G"+startRow+")");
二、讀出公式:
FileInputStream fis = new FileInputStream("c:/temp/test.xls");
Workbook wb = new HSSFWorkbook(fis); //or new XSSFWorkbook("c:/temp/test.xls")
Sheet sheet = wb.getSheetAt(0);
FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
// suppose your formula is in B3
CellReference cellReference = new CellReference("B3");
Row row = sheet.getRow(cellReference.getRow());
Cell cell = row.getCell(cellReference.getCol());
CellValue cellValue = evaluator.evaluate(cell);
switch (cellValue.getCellType()) {
case Cell.CELL_TYPE_BOOLEAN:
System.out.println(cellValue.getBooleanValue());
break;
case Cell.CELL_TYPE_NUMERIC:
System.out.println(cellValue.getNumberValue());
break;
case Cell.CELL_TYPE_STRING:
System.out.println(cellValue.getStringValue());
break;
case Cell.CELL_TYPE_BLANK:
break;
case Cell.CELL_TYPE_ERROR:
break;
// CELL_TYPE_FORMULA will never happen
case Cell.CELL_TYPE_FORMULA:
break;
}