[alibaba/easyexcel]表格数据设置某个字符为上下标

2024-01-23 336 views
2
异常代码
    @Override
    public void afterRowDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row
            , Integer relativeRowIndex, Boolean isHead) {
        //边框样式
        Cell cell = row.getCell(2) == null ? row.createCell(2) : row.getCell(2);
        Object curData = cell.getCellType() == CellType.STRING ? cell.getStringCellValue() : cell.getNumericCellValue();
        if(curData.toString().equals("11o23¤")){
            Font fontRed = cell.getSheet().getWorkbook().createFont();
            fontRed.setColor(Font.COLOR_RED);

            Font fontRedSuperscript = cell.getSheet().getWorkbook().getFontAt(2);
            fontRedSuperscript.setColor(Font.COLOR_RED);
            fontRedSuperscript.setTypeOffset(Font.SS_SUPER);
            CellUtil.setFont(cell, fontRed);
            cell.getRichStringCellValue().applyFont(2, 3, fontRedSuperscript);
        }
    }
异常提示 问题描述

表格数据中想设置某个字符为上下标。比如“11o23¤”中23为上标。麻烦帮忙解答下,谢谢。

回答

3
  RichTextString richString = new XSSFRichTextString( "11o23¤" );
  richString.applyFont(2, 3, fontRedSuperscript);
  CellUtil.setFont(cell, fontRed);
  cell.setCellValue(richString);
6

已经试过了,设置整个单元格为上下标没有问题,但是设置字符里某个字符为上下标并不能实现,您好,请问是不是不支持设置单元格里某个字符为上下标?

1

我遇到了相同的问题,解决了吗