如何通过Apache POI确定单元格中文本的一部分的颜色

时间:2015-07-01 14:21:24

标签: excel apache-poi

我有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();

我不知道它是否正确

1 个答案:

答案 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之类的方法计算字符串中字体更改的位置