2011-01-31 13 views
9

हल करें मैं एवरेज फ़ंक्शन का उपयोग करना चाहता हूं, लेकिन जब मेरे पास एक संदर्भ कक्ष होता है जो लेबल होता है तो मुझे आउटपुट के रूप में #VALUE मिलता है।जेएक्सएल #VALUE समस्या

मैं मुझे क्या करना है कोशिश कर रहा हूँ के लिए कोड का नमूना टुकड़ा संलग्न किया है:

String filename = "C:\\input.xls";  
WorkbookSettings ws = new WorkbookSettings();  
ws.setLocale(new Locale("en", "EN"));  
WritableWorkbook workbook = Workbook.createWorkbook(new File(filename), ws);  
WritableSheet s1 = workbook.createSheet("Output", 0);  
s1.addCell(new Number(1,2,6));  
s1.addCell(new Number(3, 1, 6));  
s1.addCell(new Number(3, 2, 1));  
s1.addCell(new Number(3, 3, 6));  
s1.addCell(new Label(3, 4, ""));  
Formula formula = new 
Formula(3,5,"AVERAGE(Output!D1,Output!D2,Output!D3,Output!D4,Output!D5)");  
s1.addCell(formula); 
workbook.write(); 
workbook.close(); 

मैं 0 करने के लिए रिक्त कक्ष परिवर्तित नहीं कर सकते, क्योंकि औसत मूल्य बदल जाएगा।

जार इस्तेमाल

jxl-2.6.jar

लेबल के बजाय वास्तविक समय में मान उपयोग एक सूत्र

यदि पर आधारित होगा (लिए- सेल-रेफरेंस = "", "", कुछ-वैल्यू)

हालांकि; जब मैं कुंजी के साथ सेल को संपादित करने का प्रयास करता हूं तो F2 यह इसकी निष्पादन योजना को बदलता है और मुझे सही आउटपुट मिलता है।

कोई समाधान इस के लिए उपलब्ध है ....

अपेक्षित समाधान:

खाली के रूप में सेल बनाने लेकिन सेल स्वरूप बदलने के लिए इतना है कि #VALUE वापस नहीं करने के लिए।

इस पोस्ट में थोड़ा

JXL #VALUE problem with reference to other sheet

उत्तर

1

ठीक से संबंधित है, पहली समस्या मैं देख रहा हूँ कि जो नंबर आप में जोड़ रहे हैं कॉलम में 'सी' नहीं 'डी' हो रहा है। हो सकता है कि आपके पास पहले से ही "डी" में संख्याएं हों, इसलिए यह कोई समस्या नहीं है, लेकिन कुछ विचार करने के लिए।

मुझे लगता है कि बड़ी समस्या तरीका है कि jxl स्प्रेडशीट काम करता है, इस other questioner, सोचा था कि उनके नामांकित श्रेणी से पहले अपने सूत्र सम्मिलित किया गया था नहीं बनाया गया था, इसलिए वे यह केवल काम जब वे सेल "में" चला गया था जैसा आपने किया था। तो हो सकता है कि आपका "आउटपुट" शीट प्रारंभ नहीं हो रहा है इसलिए आउटपुट के लिए कोई मान्य संदर्भ नहीं है! संदर्भ।

चूंकि आप एक ही पत्रक में फॉर्मूला डालने रहे हैं, तो चादर संदर्भ डंप और इस तरह से अपनी लाइन लिखें:

Formula formula = new Formula(3,5,"AVERAGE(D1:D5)"); 
संबंधित मुद्दे