apache अपाचे POI HSSF में, सेल टाइप अभी भी "सामान्य" एक्सेल के रूप में दिखाता है, यद्यपि यह संख्या-स्वरूपित है




coding-style format (2)

मैं मान रहा हूं कि आपको अभी तक आपके प्रश्न का उत्तर नहीं मिला है।

दो दशकों के साथ संख्या प्रदर्शित करने का एक तरीका एक सेल शैली सेट करना है यह आपको दशमलव स्थानों की संख्या और दशमलव विभाजक को अन्य चीजों के बीच कस्टमाइज़ करने की अनुमति देता है।

protected CellStyle getCellStyle(HSSFWorkbook workbook) {
    CellStyle cellStyle = workbook.createCellStyle();
    cellStyle.setDataFormat(
        workbook.getCreationHelper().createDataFormat().getFormat("#,##0.00"));
        return cellStyle;
}

बाद में, जब आप अपनी कार्यपुस्तिका को भरते हैं, तो आप इस सेल स्टाइल को वांछित कोशिकाओं में लागू करते हैं:

CellStyle cellStyle = getCellStyle();
//...
// create your cell
cell.setCellStyle(cellStyle);
// set the value

यह Excel में संख्यात्मक प्रकार के रूप में नहीं दिखाएगा यह कस्टम प्रकार के रूप में दिखाता है लेकिन नेत्रहीन इसे समान होना चाहिए, या कम से कम पर्याप्त होना चाहिए

मैं अपने जावा वेब ऐप से Excel स्प्रेडशीट जेनरेट करने के लिए अपाचे POI HSSF का उपयोग कर रहा हूं

मुझे 2 अंकों के साथ "नंबर" के रूप में स्वरूपित सेल की जरूरत है I (जावा में मेरे मूल्य बिग डिकिमेल्स हैं, लेकिन मैं उन्हें दुगुओं में परिवर्तित कर सकता हूं, कोई समस्या नहीं।) मैं इस कोड का उपयोग कर रहा हूं:

CellStyle numericStyle = wb.createCellStyle();
numericStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00"));

// output in this new style...
row.createCell(cellnum).setCellValue(((BigDecimal)value).doubleValue());
row.getCell(cellnum).setCellStyle(numericStyle);

मुद्दा यह है कि, हालांकि यह काम करता है, एक्सेल अभी भी सामान्य रूप से मेरे कक्षों को दिखाता है। उन्हें नंबर के रूप में दिखाया जाना चाहिए परिणामस्वरूप, उदाहरण के लिए, 0 को 0 के रूप में दिखाया गया है, लेकिन यह 0.00 होना चाहिए, जो कि यदि प्रारूप सही था ( संख्या ) होगा।

मुझे लगता है कि यह सामान्य के रूप में तैयार हो जाता है क्योंकि मैं किसी सेल पर राइट-क्लिक कर सकता हूं और फिर यह देखने के लिए कि यह अभी क्या है, "फ़ॉर्मेट कक्ष" का चयन कर सकते हैं।

किसी भी मदद के लिए धन्यवाद। इसे अपाचे POI HSSF द्वारा "नंबर" पर सेट करने की आवश्यकता है किसी भी सलाह की सराहना की


अपाचे POI API की समीक्षा करना ऐसा लगता है कि आप सेल का प्रकार निर्दिष्ट करने में सक्षम होना चाहिए।

...
Cell cell = row.createCell(...);
cell.setCellType(Cell.CELL_TYPE_NUMERIC);
...




hssf