O AutoSizeColumn do POI do Apache é redimensionado incorretamente
Estou usando o Apache POI em java para criar um arquivo do Excel. Eu preencho os dados e tento auto-dimensionar cada coluna, no entanto os tamanhos estão sempre errados (e eupensar consistente). As duas primeiras linhas são sempre (?) Completamente recolhidas. Quando eu auto-redimensiono as colunas no excel, funciona perfeitamente.
Nenhuma célula em branco está sendo escrita (acredito) e o redimensionamento é oúltimo coisa que faço.
Aqui está o código relevante: Esta é uma versão resumida sem tratamento de erros, etc.
public static synchronized String storeResults(ArrayList<String> resultList, String file) {
if (resultList == null || resultList.size() == 0) {
return file;
}
FileOutputStream stream = new FileOutputStream(file);
//Create workbook and result sheet
XSSFWorkbook book = new XSSFWorkbook();
Sheet results = book.createSheet("Results");
//Write results to workbook
for (int x = 0; x < resultList.size(); x++) {
String[] items = resultList.get(x).split(PRIM_DELIM);
Row row = results.createRow(x);
for (int i = 0; i < items.length; i++) {
row.createCell(i).setCellValue(items[i]);
}
}
//Auto size all the columns
for (x = 0; x < results.getRow(0).getPhysicalNumberOfCells(); x++) {
results.autoSizeColumn(x);
}
//Write the book and close the stream
book.write(stream);
stream.flush();
stream.close();
return file;
}
Eu sei que existem algumas perguntas semelhantes, mas a maioria delas é simplesmente um caso de dimensionamento antes de preencher os dados. E os poucos que não são são mais complicados / não respondidos.
EDITAR: Eu tentei usar algumas fontes diferentes e não funcionou. O que não é muito surpreendente, pois não importa qual a fonte, todas as colunas devem ser completamente recolhidas ou nenhuma deve ser.
Além disso, como o problema da fonte surgiu, estou executando o programa no Windows 7.
RESOLVIDO: Foi um problema de fonte. A única fonte que encontrei que funcionou foi Serif.