При работе со значениями, которые являются формулами, мне трудно получить столбцы для автоматической проверки правильности.Apache POI autoSizeColumn изменяет размер до минимальной ширины
Я решил «решить» это, создав скрытую строку, которая имеет максимальные значения в качестве значений постоянных строк, но это далеко не изящно и часто требует оценки формул в каждой ячейке, чтобы получить самые большие строки, которые сгенерированы. Хотя этот вид работ для такой небольшой таблицы, это становится очень непрактичным для листов, которые составляют ~ 16 столбцов х ~ 6000 строк.
Следующий код отображается как в OpenOffice.
package com.shagie.poipoc;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import java.io.FileOutputStream;
public class SimpleBug {
public static void main(String[] args) {
try {
Workbook wb = new HSSFWorkbook();
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
Sheet sheet = wb.createSheet("new sheet");
Row row = sheet.createRow(0);
CellStyle style = wb.createCellStyle();
style.setDataFormat(wb.createDataFormat().getFormat("[h]:mm"));
Cell cell = row.createCell(0);
cell.setCellValue(123.12);
cell.setCellStyle(style);
row.createCell(1).setCellFormula("A1");
row.createCell(2)
.setCellFormula("TRUNC(A1) & \"d \" & TRUNC(24 * MOD(A1,1))" +
" & \"h \" & TRUNC(MOD(60 * 24 * MOD(A1,1),60)) & \"m\"");
row.createCell(3).setCellValue("foo");
for(int i = 0; i < 4; i++) {
sheet.autoSizeColumn(i);
}
wb.write(fileOut);
fileOut.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Связанные и попробовал:
Apache POI autoSizeColumn Resizes Incorrectly Я пробовал шрифт в стиле. Я получил список всех шрифтов Java сознавал с
GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
for(String font:e.getAvailableFontFamilyNames()) {
System.out.println(font);
}
Я попробовал несколько из шрифтов, перечисленных в этом цикле, и в то время как OpenOffice изменил шрифт, столбцы, где до сих пор размер неправильно.