2012-09-05 12 views
30

Apache POI का उपयोग कर एक संपूर्ण एक्सेल पंक्ति कक्ष बोल्ड टेक्स्ट कैसे बनाएं?Apache POI का उपयोग कर पूरी पंक्ति के लिए बोल्ड टेक्स्ट शैली को कैसे लागू करें?

E.g:
कॉलम शीर्षलेख बोल्ड में होना चाहिए। शीर्ष पंक्ति के प्रत्येक सेल के लिए शैली को लागू करने के बजाय, मैं पूरी शैली में कुछ शैली कैसे लागू कर सकता हूं?

+0

के लिए काम किया यह भी उपयोगी है: http://thinktibits.blogspot.com/2012/ 12/जावा-पीओआई-प्रारूप-एक्सेल-सेल-बोल्ड-उदाहरण-प्रोग्राम.html – NoNaMe

+0

यह लिंक आपकी मदद कर सकता है। [http://stackoverflow.com/questions/37188540/java-code-for-excel-row-in-bold-text-style-with-background-color](http://stackoverflow.com/questions/37188540/ जावा-कोड-फॉर एक्सेल-पंक्ति-इन-बोल्ड-टेक्स्ट-शैली-पृष्ठभूमि-रंग के साथ) – Peter

उत्तर

32

यह ठीक काम करना चाहिए।

Workbook wb = new XSSFWorkbook("myWorkbook.xlsx"); 
    Row row=sheet.getRow(0); 
    CellStyle style=null; 

    XSSFFont defaultFont= wb.createFont(); 
    defaultFont.setFontHeightInPoints((short)10); 
    defaultFont.setFontName("Arial"); 
    defaultFont.setColor(IndexedColors.BLACK.getIndex()); 
    defaultFont.setBold(false); 
    defaultFont.setItalic(false); 

    XSSFFont font= wb.createFont(); 
    font.setFontHeightInPoints((short)10); 
    font.setFontName("Arial"); 
    font.setColor(IndexedColors.WHITE.getIndex()); 
    font.setBold(true); 
    font.setItalic(false); 

    style=row.getRowStyle(); 
    style.setFillBackgroundColor(IndexedColors.DARK_BLUE.getIndex()); 
    style.setFillPattern(CellStyle.SOLID_FOREGROUND); 
    style.setAlignment(CellStyle.ALIGN_CENTER); 
    style.setFont(font); 

आप defaultFont सब अपनी कार्यपुस्तिका डिफ़ॉल्ट के रूप में एक दूसरे का उपयोग किया जाएगा नहीं बनाते हैं।

मैंने पहले शैली के फ़ॉन्ट सेट और rowheader सामान्य रूप से तो मैं rowhead की प्रत्येक कोशिका पर बोल्ड फ़ॉन्ट के साथ शैली के लिए पाश में सेट कर आशा है कि यह मदद करता है,

+0

क्षमा करें, मैं mentntion भूल गया। मैं एचएसएसएफ वर्कबुक का उपयोग कर रहा हूं। – Krishnamachary

+2

एचएसएसएफ वर्कबुक एचडब्ल्यूबी = नई एचएसएसएफ वर्कबुक(); HSSFSheet शीट = hwb.crate शीट ("नई शीट"); HssfRow headRow = sheet.createRow ((int) 0); सेल स्टाइल शैली = headRow.getRowStyle(); फ़ॉन्ट boldFont = hwb.createFont(); boldFont.setBoldweight (फ़ॉन्ट। BOLDWEIGHT_BOLD); style.setFont (boldFont); //headRow.setRowStyle(style); -> इस काम नहीं कर रहा सेल सेल = headRow.createCell ((int) 0) cell.setCellStyle (शैली); - > इस काम कर रहा है मैं चाहता हूँ व्यक्तिगत कोशिकाओं की बजाय, पंक्ति को उत्तेजित करने के लिए बोल्ड शैली को लागू करने के लिए। – Krishnamachary

+1

http://stackoverflow.com/a/11792648/1211000 – swamy

5

यह काम मुझे

के लिए। और voilà पहली पंक्ति बोल्ड है।

HSSFWorkbook wb = new HSSFWorkbook(); 
HSSFSheet sheet = wb.createSheet("FirstSheet"); 
HSSFRow rowhead = sheet.createRow(0); 
HSSFCellStyle style = wb.createCellStyle(); 
HSSFFont font = wb.createFont(); 
font.setFontName(HSSFFont.FONT_ARIAL); 
font.setFontHeightInPoints((short)10); 
font.setBold(true); 
style.setFont(font); 
rowhead.createCell(0).setCellValue("ID"); 
rowhead.createCell(1).setCellValue("First"); 
rowhead.createCell(2).setCellValue("Second"); 
rowhead.createCell(3).setCellValue("Third"); 
for(int j = 0; j<=3; j++) 
rowhead.getCell(j).setCellStyle(style); 
+1

क्या आप किसी भी मौके से जानते हैं क्यों row.setRowStyle() काम नहीं कर रहा है? :/ –

11

कृपया आसान तरीका नीचे खोजने के लिए:

XSSFCellStyle style = workbook.createCellStyle(); 
style.setBorderTop((short) 6); // double lines border 
style.setBorderBottom((short) 1); // single line border 
XSSFFont font = workbook.createFont(); 
font.setFontHeightInPoints((short) 15); 
font.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD); 
style.setFont(font);     

Row row = sheet.createRow(0); 
Cell cell0 = row.createCell(0); 
cell0.setCellValue("Nav Value"); 
cell0.setCellStyle(style); 
for(int j = 0; j<=3; j++) 
row.getCell(j).setCellStyle(style); 
+2

क्या आप किसी भी मौके से जानते हैं कि row.setRowStyle() क्यों काम नहीं कर रहा है? :/ –

1

यह मैं

Object[][] bookData = { { "col1", "col2", 3 }, { "col1", "col2", 3 }, { "col1", "col2", 3 }, 
      { "col1", "col2", 3 }, { "col1", "col2", 3 }, { "col1", "col2", 3 } }; 

    String[] headers = new String[] { "HEader 1", "HEader 2", "HEader 3" }; 

    int noOfColumns = headers.length; 
    int rowCount = 0; 

    Row rowZero = sheet.createRow(rowCount++); 
    CellStyle style = workbook.createCellStyle(); 
    Font font = workbook.createFont(); 
    font.setBoldweight(Font.BOLDWEIGHT_BOLD); 
    style.setFont(font); 
    for (int col = 1; col <= noOfColumns; col++) { 
     Cell cell = rowZero.createCell(col); 
     cell.setCellValue(headers[col - 1]); 
     cell.setCellStyle(style); 
    } 
+0

क्या आप किसी भी मौके से जानते हैं कि row.setRowStyle() क्यों काम नहीं कर रहा है? :/ –

+0

कोई Erdal। अगर यह काम करता है, तो मैं कॉलम ओवरहेड द्वारा कॉलम के बजाय केवल पंक्ति से पंक्ति करता। –

+1

@ErdalG। row.setRowStyle काम करता है यदि पंक्ति की कोशिकाओं में मान सेट करने के बाद सेट किया गया है। यदि उपर्युक्त उत्तर में, लूप के बाद setRowStyle किया जाता है, तो यह काम करेगा! Poi 3.9 संस्करण के साथ परीक्षण किया। – Champ

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