2010-11-25 163 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