我有Excel表。
在单元格中,我们可以使用此文本的文本(for example text1;text2
)和第1部分(text1
)将为黑色,
但另一个(text2
)例如有红色。
对于读取Excel文件,我使用Apache POI。
请问如何确定文本第二部分的颜色(which in our case is red
)。
为了确定单元格中的整个文本,我现在使用此代码:
HSSFCellStyle cellStyle = (HSSFCellStyle) currentCell.getCellStyle();
short cellColor = cellStyle.getFont(currentCell.getSheet().getWorkbook()).getColor();
我不知道它是否正确
答案 0 :(得分:2)
您需要将单元格的内容作为here.获取,然后从中获取格式信息
对于HSSF,您的代码可能是:
HSSFRichTextString richTextString = hssfCell.getRichStringCellValue();
for (int i=0; i<richTextString.0,r.numFormattingRuns(); i++) {
if (richTextString.getFontAtIndex(i) == HSSFRichTextString.NO_FONT) {
// Default cell formatting rules apply to this bit
} else {
HSSFFont font = workbook.getFontAt(richTextString.getFontAtIndex(i));
// This bit of the string has the above font
}
}
您可以使用RichTextString之类的方法计算字符串中字体更改的位置