2010-11-25 158 views

回答

8

Ptg[]array of tokens它代表單元格中的公式。

假設在我的excel表我有作爲細胞與式爲

=D4+D6+D8-D11+D23+D29+D46-D49 

通過FormulaParser運行這給了我其中我已打印出如下所示

HSSFEvaluationWorkbook hssfew = HSSFEvaluationWorkbook.create(workBook); 

Ptg[] ptg = FormulaParser.parse(cell1.getCellFormula(), hssfew, FormulaType.NAMEDRANGE, 0); 

for (int i=0;i<ptg.length;i++){ 
    System.out.println (ptg[i]); 
} 

結果

陣列
org.apache.poi.hssf.record.formula.RefPtg [D4] 
org.apache.poi.hssf.record.formula.RefPtg [D6] 
class org.apache.poi.hssf.record.formula.AddPtg 
org.apache.poi.hssf.record.formula.RefPtg [D8] 
class org.apache.poi.hssf.record.formula.AddPtg 
org.apache.poi.hssf.record.formula.RefPtg [D11] 
class org.apache.poi.hssf.record.formula.SubtractPtg 
org.apache.poi.hssf.record.formula.RefPtg [D23] 
class org.apache.poi.hssf.record.formula.AddPtg 
org.apache.poi.hssf.record.formula.RefPtg [D29] 
class org.apache.poi.hssf.record.formula.AddPtg 
org.apache.poi.hssf.record.formula.RefPtg [D46] 
class org.apache.poi.hssf.record.formula.AddPtg 
org.apache.poi.hssf.record.formula.RefPtg [D49] 
class org.apache.poi.hssf.record.formula.SubtractPtg 

正如你所看到的,這將公式中的每個元素分解爲t他相應的單元格位置或操作 AddPtg爲+和SubtractPtg爲-操作

這是一個簡單的例子,你可以嘗試更復雜的東西

+0

感謝何塞,但如何獲取時,會出現在公式中的操作...例如,我想+ + - 類似的東西...請幫我拿這個...... – Saravanan 2010-11-25 06:12:09