#java #apache-poi
#java #apache-poi
Вопрос:
Я пытаюсь автоматически изменить размер столбца, который повернут на 90 градусов, имеет новую строку в значении, но, похоже, автоматическое изменение размера не увеличивает ширину ячейки, если она содержит новую строку (только часть перед появлением новой строки, а другая часть скрыта), как в приведенном ниже коде,есть ли какой-либо рабочий путь для этого
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet();
String value ="This is long text with new line ... n this is the second line";
XSSFCellStyle style = workbook.createCellStyle();
style.setRotation((short)90);
style.setWrapText(true);
Row row = sheet.createRow(1);
Cell cell = row.createCell(0);
cell.setCellStyle(style);
cell.setCellValue(value);
workbook.getSheetAt(0).autoSizeColumn(0);
Ответ №1:
Для меня это имеет смысл из-за setWrapText(true)
. Согласно документам apache-poi для autoSizeColumn()
, этот метод
Настраивает ширину столбца в соответствии с содержимым
Но перед autoSizeColumn()
вызовом вы вызываете setWrapText(true)
, и то, что он делает, заключается в том, чтобы поместить все ваше текстовое содержимое внутри ячейки, поэтому, поскольку текст помещается внутри ячейки, autoSizeColumn()
там нечего делать, потому что текст уже помещается, и нет необходимости расширять столбец.