Saicharan S M
Saicharan S M

Reputation: 828

Setting a part of the cell contents to bold using apache poi?

How can i put this string in to a cell using java apache poi?
The string is "Hello world Hello"
As u can see i need to make a part of the text bold?
I'm able to set the entire contents of the cell to bold but not specific parts.
Please help me.

Upvotes: 12

Views: 19351

Answers (3)

Nick Minchev
Nick Minchev

Reputation: 39

cell.setValue(value);
RichTextString rts = cell.getRichStringCellValue();
rts.applyFont(value.indexOf(subValue), value.length(), boldFonts);
cell.setCellValue(rts);

Where value=something+subValue. Here subValue contents will be with bold fonts. for example if we have someting="Hello" and subValue="world" we will print:

Hello world

in the cell.

Upvotes: 0

Arif Nazar Purwandaru
Arif Nazar Purwandaru

Reputation: 685

This will print "Hello world Hello" in a cell

XSSFRichTextString rts= new XSSFRichTextString("Hello ");

XSSFFont fontBold= wb.createFont();
fontBold.setBold(true); //set bold
fontBold.setFontHeight(12); //add font size

rts.append("world ",fontBold);
rts.append("Hello");

sheet.getRow(1).getCell(1).setCellValue(rts);

Upvotes: 8

Michael Fernando
Michael Fernando

Reputation: 304

This is probably what you are looking for: http://poi.apache.org/spreadsheet/quick-guide.html#DrawingShapes

Find this in the explanation:

It's possible to use different fonts to style parts of the text in the textbox. Here's how:

HSSFFont font = wb.createFont();
font.setItalic(true);
font.setUnderline(HSSFFont.U_DOUBLE);
HSSFRichTextString string = new HSSFRichTextString("Woo!!!");
string.applyFont(2,5,font);
textbox.setString(string );

This might be useful: http://apache-poi.1045710.n5.nabble.com/Multiple-text-styles-in-Excel-cell-td4922683.html

Upvotes: 18

Related Questions