java 使用Apache poi在Excel工作表中的单个单元格中插入多帕拉标记

zdwk9cvp  于 12个月前  发布在  Java
关注(0)|答案(1)|浏览(148)

我有一个输入如下:

<p style="font-family:Caveat;">This is Caveat</p><p style="font-family:Arial;">This is Arial text</p>

字符串
我想插入两个帕拉标记元素在一个单一的单元格如下使用apache poi.

.我试了几个例子,但我可以找到任何适当的解决方案,从净.有人可以帮助我解决它?

ruoxqz4g

ruoxqz4g1#

Excel单元格不包含文本段落。单元格只能包含具有不同文本格式的单个文本串。为此,您需要在单元格中包含RichTextString内容。
单元格内容也可以包含换行符。但只有当单元格样式设置为文本换行时,换行符才有效。
使用XSSFRichTextString,可以使用XSSFRichTextString.append方法使用不同的字体附加不同的字符串。
不同的字体需要在工作簿级别上创建。单元格样式也是如此。
完整示例:

import org.apache.poi.xssf.usermodel.*;
import java.io.FileOutputStream;

class RichTextTest {

 public static void main(String[] args) throws Exception {
  XSSFWorkbook wb = new XSSFWorkbook();
  
  XSSFCellStyle wrapTextCellStyle = wb.createCellStyle();
  wrapTextCellStyle.setWrapText(true);
  
  XSSFFont fontTNR = wb.createFont();
  fontTNR.setFontName("Times New Roman");
   
  XSSFFont fontArial = wb.createFont();
  fontArial.setFontName("Arial");
  
  XSSFRichTextString richString = new XSSFRichTextString();
  richString.append("This is Times New Roman", fontTNR);
  richString.append("\n");
  richString.append("This is Arial", fontArial);
  
  XSSFSheet sheet = wb.createSheet("Sheet1");
  XSSFRow row = sheet.createRow(0);
  XSSFCell cell = row.createCell(0);

  cell.setCellValue(richString);
  cell.setCellStyle(wrapTextCellStyle);
  
  sheet.setColumnWidth(0, 25*256);

  try ( FileOutputStream fileOut = new FileOutputStream("./workbook.xlsx"); ) {
   wb.write(fileOut);
  }

 }
}

字符串

相关问题