我想在Excel单元格中显示带有上标的文本。我试图将HTML字符串传递给XSSFRichTextString,但它显示输出文件中的HTML字符串。
我正在使用Apache POI 3.16
答案 0 :(得分:1)
您在想,RichTextString应该能够解释HTML吗?它不是。它只能从startIndex
到endIndex
apply Font。 Font可以使用TypeOffset SS_SUPER进行标记。
示例:
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.*;
import java.io.FileOutputStream;
class RichTextSuperscript {
public static void main(String[] args) {
Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("Sheet1");
Font fontRed = wb.createFont();
fontRed.setColor(Font.COLOR_RED);
Font fontRedSuperscript = wb.createFont();
fontRedSuperscript.setColor(Font.COLOR_RED);
fontRedSuperscript.setTypeOffset(Font.SS_SUPER);
String string = "Level 3";
RichTextString richString = new XSSFRichTextString( "Level 13" );
//^0 ^7
richString.applyFont(7, 8, fontRedSuperscript);
for (int r = 0; r < 10; r++) {
Row row = sheet.createRow(r);
Cell cell = row.createCell(0);
if ((r%2) == 0) {
cell.setCellValue(string);
} else {
CellUtil.setFont(cell, fontRed);
cell.setCellValue(richString);
}
}
try {
wb.write(new FileOutputStream("RichTextSuperscript.xlsx"));
wb.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}