2010-11-25 29 views
1

org.apache.poi.ss.formula.FormulaParserを使用して簡単なコードスニペットを教えてください。org.apache.poi.ss.formula.FormulaParserを使用して数式を解析する方法は?

方法の解析を持つFormulaParserクラスに()。しかし、それは[] PTGを返します。私はPTGクラスがどこにあるか知らない...
Excelシート式を解析するformulaParseを使用するように私を導いてください...

サラバナン

答えて

8

Ptg[]は、細胞内の式を表すarray of tokensです。 FormulaParserを介してこれを実行する

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

として式電池が私に

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]); 
} 

結果以下のように、私はプリントアウトしている配列を与えるよう

は私が持っている私のExcelシートに仮定

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

+0

私が答えで説明したように、* + *は* AddPtg *として表示されます。同様に* - * – JoseK

+0

あなたのセルの数式で私のサンプルコードを試してみて、結果を見てください。 – JoseK

関連する問題