使用 apache-poi 4.0.1 库将单元格内容的某些部分设置为粗体/斜体

2024-01-11

我想用粗体和斜体的组合来设置单元格值的内容。 就像“这是Sample content."

但是,这不适用于 XSSFrichTextString。

我正在使用 apache poi 库版本 4.0.1。我尝试使用 XSSFRichTextString 将内容设为粗体和斜体组合。我通过在方法 cell1Value.append("sample ", fontBold); 中传递两个参数来附加字符串;即字符串和字体。

    XSSFRichTextString cell1Value= new XSSFRichTextString("This is ");
    XSSFFont fontBold= wb.createFont();
    fontBold.setBold(true); //set bold
    fontBold.setUnderline(HSSFFont.U_SINGLE);


    XSSFFont fontItalic= wb.createFont();
    fontItalic.setItalic(true); //set italic

    cell1Value.append("sample ",fontBold);
    cell1Value.append("content", fontItalic);

    System.err.println(cell1Value.getCTRst());

    Cell cell1 = row.createCell(0);
    cell1.setCellValue(cell1Value);

我期望“样本”为粗体,“内容”为斜体。但是,下划线工作正常,并且我的“示例”单词下划线正确。请建议我缺少什么?


import java.io.FileOutputStream;
import java.io.OutputStream;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class TextBoldItalic {

  public static void main(String[] args) throws Exception {

    XSSFWorkbook wb = new XSSFWorkbook();
    Sheet sheet = wb.createSheet();
    Row row = sheet.createRow(0);
    Cell cell = row.createCell(0);

    XSSFFont fontBold = wb.createFont();
    fontBold.setBold(true);
    XSSFFont fontItalic = wb.createFont();
    fontItalic.setItalic(true);
    XSSFFont fontBoldItalic = wb.createFont();
    fontBoldItalic.setBold(true);
    fontBoldItalic.setItalic(true);

    XSSFRichTextString cellValue = new XSSFRichTextString();
    cellValue.append("This is ", fontBold);
    cellValue.append("sample ", fontItalic);
    cellValue.append("content", fontBoldItalic);
    cell.setCellValue(cellValue);

    OutputStream fileOut = new FileOutputStream("TextBoldItalic.xlsx");
    wb.write(fileOut);
    wb.close();
  }
}

这段代码对我有用并给我这个结果 https://i.stack.imgur.com/qiVsb.png在 LibreOffice 中。 OpenOffice 也不错。抱歉,这里没有 MS Excel 可供测试。当然有这样的工具在线 Excel 查看器 https://sheet.zoho.com/sheet/excelviewer不会做对的。因此,请尝试我的代码并进行报告。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 apache-poi 4.0.1 库将单元格内容的某些部分设置为粗体/斜体 的相关文章

随机推荐