मेरे पास मेरे शीट की कोशिकाओं में कुछ सूत्र हैं, और मैं कुछ मान डालने के बाद उनका मूल्यांकन करना चाहता हूं। उदाहरण के लिए:अपाचे पीओआई फॉर्मूला का मूल्यांकन
मेरे सूत्र =SUM(B1,B2)
से पहले मान प्रविष्टि B1
मूल्य 1
था, और B2
मूल्य 3
था, और सूत्र परिणाम 4
के बाद मूल्यों की प्रविष्टि अब बी 1 मूल्य 5
है, और बी 2 है मूल्य 2
है लेकिन सूत्र अभी भी 4
का उत्पादन करता है, मैं मूल्यांकन कैसे किया जा सकता/मूल्यांकन कर सकता हूं?
स्वाभाविक रूप से सूत्र सूत्र पर रिटर्न बटन हिट करने के बाद नया मान 7
की गणना की जाती है, क्या मैन्युअल बातचीत के बिना इसे ट्रिगर करने का कोई तरीका है?
मैं Excel 2007 का उपयोग कर रहा है ताकि XSSFWorkbook
संपादित करें/अद्यतन:
मैं Gabors समाधान का उपयोग किया है इससे पहले कि वह इसे पोस्ट लेकिन मैं एक संदर्भ के रूप में उपयोग कर रहा हूँ, यहाँ क्या होता है :
public XSSFFormulaEvaluator getEvaluator(){
if(evaluator == null){
evaluator = new XSSFFormulaEvaluator(wb);
}
return evaluator;
}
:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.poi.ss.formula.WorkbookEvaluator.<init>(Lorg/apache/poi/ss/formula/EvaluationWorkbook;Lorg/apache/poi/ss/formula/IStabilityClassifier;Lorg/apache/poi/hssf/record/formula/udf/UDFFinder;)V
at org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator.<init>(XSSFFormulaEvaluator.java:64)
at org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator.<init>(XSSFFormulaEvaluator.java:51)
...............
...............
यहाँ प्रासंगिक कोड का एक हिस्सा है
वास्तव में लागू मूल्यांकनकर्ता:
//where index is int, and mycell is int
row = (XSSFRow) sheet.getRow(index);
cell = row.createCell(mycell);
getEvaluator().evaluateFormulaCell(cell);
मैं किसी के लिए देख रहा हूँ इस का इस्तेमाल किया और सफल, वास्तव में यह कोशिश कर के बिना नहीं जो लोग गूगल समाधान था, मैं कम से कम कहने के लिए एक बहुत googling किया गया है।
प्रति Gagravar सुझाव मैं अपने classpath पर 2 POIs है:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.8-beta1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.7</version>
</dependency>
मैं हालांकि मैं XSSF कार्यपुस्तिका आदि के लिए 3.7 संस्करण की आवश्यकता
समाधान:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.8-beta2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.8-beta2</version>
</dependency>
NoSuchMethodError मुझे इंगित करता है कि आपके क्लासपाथ पर पीओआई जार की दो प्रतियां हैं। सुनिश्चित करें कि आपके पास केवल एक है तो इसे ठीक काम करना चाहिए – Gagravarr
@Gagravarr कृपया मेरे अपडेट – ant
देखें यह आपकी समस्या है। आपके पीओआई संस्करणों को मिलान करने की आवश्यकता है। आप मुख्य पीओआई जार, और poi-ooxml दोनों के लिए 3.8-बीटा 1 (या यहां तक कि बेहतर 3.8-बीटा 2) चाहते हैं। आप संस्करणों के बीच पीओआई जार मिश्रण और मैच नहीं कर सकते! – Gagravarr