poi hssf 读取excel 公式 结果不正确 求助
我用的是 excel2003
代码如下,但是 读出的结果是错误的
HSSFFormulaEvaluator.CellValue cellValue = evaluator.evaluate(cell);
这一行产生的结果就是错误的。
public class POIReader {
public static String fileToBeRead ="C:\\workspace\\POIReader\\SOLVSAMP.XLS";
public static void main(String[] args) {
// TODO Auto-generated method
try
{
FileInputStream fis = new FileInputStream(fileToBeRead);
HSSFWorkbook wb = new HSSFWorkbook(fis);
HSSFSheet sheet = wb.getSheetAt(0);
HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(sheet, wb);
// suppose your formula is in B3
CellReference cellReference = new CellReference("B5");
HSSFRow row = sheet.getRow(cellReference.getRow());
HSSFCell cell = row.getCell(cellReference.getCol());
evaluator.setCurrentRow(row);
HSSFFormulaEvaluator.CellValue cellValue = evaluator.evaluate(cell);
switch (cellValue.getCellType()) {
case HSSFCell.CELL_TYPE_BOOLEAN:
System.out.println(cellValue.getBooleanValue());
break;
case HSSFCell.CELL_TYPE_NUMERIC:
System.out.println(cellValue.getNumberValue());
break;
case HSSFCell.CELL_TYPE_STRING:
String strValue = cellValue.getStringValue();
System.out.println(strValue);
break;
case HSSFCell.CELL_TYPE_BLANK:
break;
case HSSFCell.CELL_TYPE_ERROR:
break;
// CELL_TYPE_FORMULA will never happen
case HSSFCell.CELL_TYPE_FORMULA:
break;
}
}catch(Exception e)
{
System.err.println("running POIReader:" + e);
}
}
}