2014-09-24 13 views
7

उदाहरण के लिए उपयोग कर रहा एक्सेल कोशिकाओं में दो दशमलव अंक,हमेशा Apache POI

XSSFCellStyle style=(XSSFCellStyle) workbook.createCellStyle(); 
style.setDataFormat(workbook.createDataFormat().getFormat("#.##")); 

productCell.setCellValue(12.4); 
productCell.setCellType(Cell.CELL_TYPE_NUMERIC); 
productCell.setCellStyle(style); 

यह प्रदर्शित करता है निर्दिष्ट सेल में 12.4 दिखा। यह 12.40 होना चाहिए। मान 12 को 12. के रूप में प्रदर्शित किया गया है जो काफी अनावश्यक है।

यदि मान 0 है, तो यह एक बिंदु . प्रदर्शित करता है। यह किसी भी सेल में संग्रहीत मूल्य के बावजूद, इस मामले में हमेशा दो दशमलव अंक - 0.00 प्रदर्शित करना चाहिए।

एक संख्यात्मक सेल में हमेशा दो दशमलव अंकों को दिखाने के लिए एक्सेल को कैसे मजबूर किया जाए?


मैं संख्यात्मक कोशिकाओं को प्रदर्शित करने के लिए निम्न शैलियों में से एक का उपयोग करता हूं।

XSSFColor commonColor = new XSSFColor(new java.awt.Color(240, 240, 240)); 
XSSFColor cellBorderColour = new XSSFColor(new java.awt.Color(0, 76, 153)); 

Font font = workbook.createFont(); 
font.setBoldweight(Font.BOLDWEIGHT_BOLD); 
font.setColor(IndexedColors.DARK_BLUE.index); 

XSSFCellStyle style = (XSSFCellStyle) workbook.createCellStyle(); 
style.setFillForegroundColor(commonColor); 
style.setFillPattern(CellStyle.SOLID_FOREGROUND); 
style.setAlignment(CellStyle.ALIGN_RIGHT); 
style.setFont(font); 

style.setBorderLeft(BorderStyle.HAIR); 
style.setBorderColor(XSSFCellBorder.BorderSide.LEFT, cellBorderColour); 
style.setBorderTop(BorderStyle.HAIR); 
style.setBorderColor(XSSFCellBorder.BorderSide.TOP, cellBorderColour); 
style.setBorderRight(BorderStyle.HAIR); 
style.setBorderColor(XSSFCellBorder.BorderSide.RIGHT, cellBorderColour); 
style.setBorderBottom(BorderStyle.DOUBLE); 
style.setBottomBorderColor(cellBorderColour); 

मैं संख्यात्मक कोशिकाओं पर लागू कुछ सूत्रों उत्कृष्टता संख्यात्मक कोशिकाओं है कि एक संख्या स्वरूप लागू करने के बाद प्रदर्शन की उम्मीद कर रहे हैं पर कुछ गणना करने के लिए (आधा गोलाई)।

+0

क्या आपने यह http://stackoverflow.com/questions/9789627/write-double-value-in-numeric-cell-with-specific-format-in-apache-poi-3-7 कोशिश की? –

+0

हां जो प्रश्न में उल्लिखित वही व्यवहार करता है। – Tiny

+0

यदि आप एक्सेल में सेल को स्वरूपित कर रहे हैं, तो यह देखने के लिए कि आप इसे कैसे चाहते हैं, आपको किस सेल शैली का उपयोग करने की आवश्यकता है? – Gagravarr

उत्तर

19

एक्सेल स्वरूपण में, # का अर्थ है "केवल तभी एक अंक रखें यदि आवश्यक हो", लेकिन 0 का अर्थ है "हमेशा एक अंक रखें, भले ही यह अनावश्यक 0 हो"। आप the data format in Apache POI बिल्कुल as you would in Excel itself निर्दिष्ट कर सकते हैं। यदि आप 0 अंक दिखाना चाहते हैं, तो आपको 0 एस को स्वरूपण अंक के रूप में उपयोग करने की आवश्यकता है। प्रयास करें

style.setDataFormat(workbook.createDataFormat().getFormat("0.00")); 

यह मान 00.00 और 12.412.40 के रूप में के रूप में दिखाई देगा।

संबंधित मुद्दे