[alibaba/easyexcel]如何读取excel上下标

2024-02-21 262 views
2
问题描述

如何读取excel上下标,哪位大神,帮忙解答下,谢谢!!!

回答

8

上下标属于富文本特殊样式,只能用POI来读了 给你一段gpt给的poi代码

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.io.IOException;

public class ReadSuperscriptText {
    public static void main(String[] args) throws IOException {
        // 读取Excel文件
        String filePath = "your_file_path.xlsx";
        try (FileInputStream fis = new FileInputStream(filePath);
             Workbook workbook = new XSSFWorkbook(fis)) {
            Sheet sheet = workbook.getSheetAt(0);

            // 读取第一行第一列的单元格
            Cell cell = sheet.getRow(0).getCell(0);

            // 获取富文本内容
            RichTextString richTextString = cell.getRichStringCellValue();

            // 遍历富文本内容的格式化部分
            for (int i = 0; i < richTextString.numFormattingRuns(); i++) {
                int startIndex = richTextString.getIndexOfFormattingRun(i);
                int endIndex = startIndex + richTextString.getLengthOfFormattingRun(i);

                // 获取当前格式化部分的字体
                Font font = richTextString.getFontOfFormattingRun(i);
                boolean isSuperscript = font.getTypeOffset() == Font.SS_SUPER;

                // 获取当前格式化部分的文本
                String text = richTextString.getString().substring(startIndex, endIndex);

                System.out.println("文本: " + text);
                System.out.println("是否上标: " + isSuperscript);
            }
        }
    }
}