我的输入如下:
<p style="font-family:Caveat;">This is Caveat</p><p style="font-family:Arial;">This is Arial text</p>
我想使用 apache poi 将两个 para 标签元素插入到一个单元格中,如下所示。
.我尝试了网上的一些例子,但我可以找到任何合适的解决方案。任何人都可以帮助我解决它吗?
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);
}
}
}