【发布时间】:2021-06-22 09:15:02
【问题描述】:
我有固定的列宽,需要使用 apache POI 自动调整行高,但我找不到它的工作设计。我试过this decision,但它不适用于此文本
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua
列宽为 33.00(236 像素),表格中的单元格具有 自动换行 属性。只有当内容高度大于现有行高时,我才能更改行高。
所以,我想问一下,有没有什么方法可以根据内容自动调整行高?
private float calculateRowLinesForText(Font cellFont, float columnWidthInPoints, String value) {
java.awt.Font currFont = new java.awt.Font(cellFont.getFontName(), 0, cellFont.getFontHeightInPoints());
FontRenderContext frc = new FontRenderContext(null, true, true);
int lineCnt = 0;
for (String partValue : value.split("\n")) {
AttributedString attrStr = new AttributedString(partValue);
attrStr.addAttribute(TextAttribute.FONT, currFont);
LineBreakMeasurer measurer = new LineBreakMeasurer(attrStr.getIterator(), frc);
while (measurer.getPosition() < partValue.length()) {
int nextPos = measurer.nextOffset(columnWidthInPoints);
lineCnt++;
measurer.setPosition(nextPos);
}
}
return lineCnt;
}
【问题讨论】:
标签: java excel apache-poi