直接上代碼:
HSSFRichTextString richTextString = cell.getRichStringCellValue();
String realString = richTextString.getString();
boolean isCellStrikeOut = false;
HSSFCellStyle cellStyle = cell.getCellStyle();
if (cellStyle != null) {
HSSFFont font = workbook.getFontAt(cellStyle.getFontIndex());
if (font.getStrikeout()) {
isCellStrikeOut = true;
}
}
if (richTextString.numFormattingRuns() == 0) {
if (isCellStrikeOut) {
return "";
}
return realString;
} else if (!isCellStrikeOut) {
StringBuilder sb = new StringBuilder(realString);
int lastIndex = realString.length();
for (int i = richTextString.numFormattingRuns() - 1; i >= 0 ; i --) {
short fontIndex = richTextString.getFontOfFormattingRun(i);
HSSFFont font = workbook.getFontAt(fontIndex);
if (font.getStrikeout()) {
sb.delete(richTextString.getIndexOfFormattingRun(i), lastIndex);
}
lastIndex = richTextString.getIndexOfFormattingRun(i);
}
return sb.toString();
} else {
StringBuilder sb = new StringBuilder();
int lastIndex = realString.length();
for (int i = richTextString.numFormattingRuns() - 1; i >= 0 ; i --) {
short fontIndex = richTextString.getFontOfFormattingRun(i);
HSSFFont font = workbook.getFontAt(fontIndex);
if (!font.getStrikeout()) {
sb.insert(0, realString.substring(richTextString.getIndexOfFormattingRun(i), lastIndex));
}
lastIndex = richTextString.getIndexOfFormattingRun(i);
}
return sb.toString();
}