1
你可以使用org.apache.poi.ss.formula.FormulaParser給我簡單的代碼snippt。如何使用org.apache.poi.ss.formula.FormulaParser來解析公式?
具有方法解析(FormulaParser類),但它返回PTG []。我不知道哪裏是PTG類...
請引導我使用formulaParse解析excel工作表式...
Saravanan
你可以使用org.apache.poi.ss.formula.FormulaParser給我簡單的代碼snippt。如何使用org.apache.poi.ss.formula.FormulaParser來解析公式?
具有方法解析(FormulaParser類),但它返回PTG []。我不知道哪裏是PTG類...
請引導我使用formulaParse解析excel工作表式...
Saravanan
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爲-
操作
這是一個簡單的例子,你可以嘗試更復雜的東西
感謝何塞,但如何獲取時,會出現在公式中的操作...例如,我想+ + - 類似的東西...請幫我拿這個...... – Saravanan 2010-11-25 06:12:09