2010-11-25 2 views
1

org.apache.poi.ss.formula.FormulaParser를 사용하여 간단한 코드 스 니펫을 제공 할 수 있습니까?수식을 구문 분석하기 위해 org.apache.poi.ss.formula.FormulaParser를 사용하는 방법?

FormulaParser 클래스 메소드 구문 분석을 (가지고). 그러나 반환 PTG []. 내가 ...을 PTG 클래스는 ...
는 엑셀 시트 공식을 구문 분석 formulaParse를 사용하는 저를 인도 해주십시오 위치를 잘 모릅니다

사라바 난

답변

8

Ptg[]은 셀 내의 화학식을 나타내는 array of tokens이다. 제 엑셀 시트에 가정하자

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

결과

아래와 같이 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

+0

제가 대답에서 설명했듯이, * + *는 * AddPtg *로 표시되어 * + *를 의미합니다. 마찬가지로 * - * – JoseK

+0

자신의 셀 수식을 사용하여 예제 코드를 시험해보고 결과를 확인하십시오. – JoseK

관련 문제