我正在使用ApachePOISXSSF生成xlsx文档。该文档使用Times New Roman大小为9和11,并且更改了默认的单元格宽度和高度。问题是如何计算合并单元格的高度,以便所有文本都适合(单元格的高度必须根据给定文本动态设置)?运行应用程序的服务器没有显示,并且此代码运行在IBM集成总线中。
如何获得使用Java定义宽度的多行富文本字段(任何字体,任何字体大小)所需的高度的解决方案?不合适。运行应用程序的服务器缺少显示和字符串int ppi=java. awt.Toolkit.getDefaultToolkit().getScreenSolutions();返回异常,手动选择ppi值也是不可能的。如果有显示,一切正常。
并且有没有办法以某种方式使用“对齐中心选择”功能?
我发现居中选择给出了类似于水平合并多个单元格的结果,但是我在ApachePOI中找不到如何使用它的答案。结果,通过实验,我发现为了实现这种效果,你需要做以下事情:
代码示例:
Font font = wb.createFont(); // where wb - is SXSSFWorkbook object
font.setFontName("Times New Roman");
font.setFontHeightInPoints((short) 11);
CellStyle style = wb.createCellStyle();
style.setFont(font);
style.setWrapText(true);
style.setAlignment(HorizontalAlignment.CENTER_SELECTION);
for (int i = 0; i <= endCellNum - firstCellNum; i++){ // where endCellNum - number of last cell of selection and firstCellNum is number of first cell of selection
Cell cell = curRow.createCell(firstCellNum + i);
cell.setCellStyle(cs);
if (i == 0){
firstCell = cell;
}
}
firstCell.setCellValue(value);