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