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.
Asked
Active
Viewed 1.9k times
12

Saicharan S M
- 828
- 3
- 11
- 25
3 Answers
18
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

Michael Fernando
- 304
- 2
- 6
8
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);

Arif Nazar Purwandaru
- 675
- 1
- 12
- 16
-
In my case it asks me to cast Font to XSSFFont – cnexans Dec 19 '19 at 19:24
0
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.

Nick Minchev
- 39
- 4