2012-01-23 15 views
11

का उपयोग कर संख्यात्मक प्रारूप में एक्सेल सेल मान सेट करना मैं एक्सेल शीट में संख्यात्मक डेटा स्टोर करना चाहता हूं।
संख्यात्मक डेटा का प्रतिनिधित्व मेरे जावा कोड में स्ट्रिंग प्रकार द्वारा किया जाता है।
क्या इसे इसे कास्ट किए बिना संख्यात्मक के रूप में सेट करना संभव है?पीओआई

मैं निम्नलिखित कोड की कोशिश की है, लेकिन यह सांख्यिक प्रकार में परिवर्तित नहीं किया गया था (मैं एक्सेल में एक चेतावनी है कि नंबर कह पाठ के रूप में संग्रहीत किया जाता है ...) आवरण का उपयोग करने के

HSSFCell dCell =... 
dCell.setCellType(Cell.CELL_TYPE_NUMERIC); 
dCell.setCellValue("112.45") 
+0

अन्य प्रकार का समर्थन करने के अतिभारित setCellValue विधि नहीं है यानी नहीं कर सकते आप उस विधि में एक फ्लोट या कुछ पास करते हैं? आप वर्तमान में एक स्ट्रिंग गुजर रहे हैं। – mydoghasworms

+0

हां, मैं किसी भी प्रकार से गुजर सकता हूं। मैंने पूछा कि क्या एएस स्ट्रिंग को पास करना संभव है और इसे आवश्यक प्रकार में स्वतः रूपांतरित करें। – omrid

+0

इस देखें: [लिंक विवरण यहाँ दर्ज करें] [1] [1]: http: // stackoverflow।कॉम/प्रश्न/5335285/लिखने-संख्या-में-एक्सेल-सेल-साथ-poi –

उत्तर

20

आप एक डबल के रूप में मूल्य प्रदान करने के लिए है। - स्थापित करने के लिए सांख्यिक मान

मूल्य:

public void setCellValue(double value)

सेल

पैरामीटर के लिए एक अंकीय मान सेट

setCellValue: the doc says के रूप में इस सेल को। सूत्रों के लिए हम सटीक मान सेट करेंगे, संख्याओं के लिए हम अपना मान निर्धारित करेंगे। अन्य प्रकारों के लिए हम सेल को एक संख्यात्मक सेल में बदल देंगे और इसका मूल्य निर्धारित करेंगे।

इसलिए, यह

dCell.setCellValue(new Double("123")); 

या

dCell.setCellValue(123); //Remember, the way you did was, you actually passed a string (no quotes) 
+1

तो मुझे आवश्यक प्रकार में मूल्य निर्धारित करना होगा? यह स्ट्रिंग से "स्वत: रूपांतरित" नहीं हो सकता है? – omrid

+2

नहीं, बस मैंने जो कहा या dCell.setCellValue (123) का उपयोग करें। याद रखें, कोई उद्धरण नहीं है या यह इसे एक स्ट्रिंग बना देगा। (जो आपने वास्तव में किया था) –

2

कोशिश कक्षाएं:

dCell.setCellValue(new Double(112.45)); 

BTW, यह इस प्रकार है अगर आप बस डबल कोट्स के बजाय मूल्य देने के लिए काम करेंगे:

dCell.setCellValue(112.45); 
7

मैं इसके लिए बिग दशमलव इस्तेमाल किया,

dCell.setCellValue(new BigDecimal("112.45").doubleValue()); 
+0

धन्यवाद। मैं भी बड़े दशमलव रूपांतरण की तलाश में था। – ramakrishnan

1

पुराने एक होना चाहिए लेकिन फिर भी यह इस नेट से कुछ एक है जो NPOI

dCell.setCellValue(Convert.ToDouble(112.45)); 

का उपयोग करने में मदद करेगा हम

है
cell.SetCellType(NPOI.SS.UserModel.CellType.NUMERIC); 

जो चेतावनी लेकिन 1 कोड को दूर नहीं करता सभी पूर्णांकों और .net में डबल मूल्यों के लिए डबल करने के लिए परिवर्तित करने के बाद काम किया था,