2015-04-16 127 views
1

我想從使用Apache POI的Excel中讀取公式值。我幾乎能夠完美地讀取所有的值。我的代碼片段:使用Apache POI從Java中讀取公式字段

case Cell.CELL_TYPE_FORMULA: 
     switch(cell.getCachedFormulaResultType()) { 
     case Cell.CELL_TYPE_NUMERIC: 
      e=cell.getNumericCellValue(); 
      break; 
      case Cell.CELL_TYPE_STRING 
      e=cell.getRichStringCellValue(); 
       break; 
      } 

這在大多數情況下工作正常,像整數和浮點值,但是當公式與%的工作則是給問題。

當公式= 1234-1200時,它讀數值= 34
但是當公式= 100%-40%時,讀數值= 0.6但不是60%。

如何克服這一點?

+0

你有沒有嘗試使用[DataFormatter](http://poi.apache.org/apidocs/org/apache/poi/ss/的usermodel/DataFormatter.html)? – Gagravarr

回答

1

嘗試是這樣的你的情況Cell.CELL_TYPE_NUMERIC內:聲明

if (cell.getCellStyle().getDataFormatString().contains("%")) { 
    // Detect Percent Values 
    Double value = cell.getNumericCellValue() * 100; 
    System.out.println("Percent value found = " + value.toString() +"%"); 
} else { 
    Double value = cell.getNumericCellValue(); 
    System.out.println("Non percent value found = " + value.toString()); 
} 
+0

真棒,它完美的作品...謝謝你兄弟... – rajasekhar

+0

快樂.. @rajasekhar –

相關問題