Никакие пустые ячейки не записываются (я думаю), и изменение размера происходит последним. что я делаю.
Вот соответствующий код: Это упрощенная версия без обработки ошибок и т. д.
Код: Выделить всё
public static synchronized String storeResults(ArrayList 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;
}
РЕДАКТИРОВАТЬ: Я попробовал использовать пару разных шрифтов, но это не сработало. . Что неудивительно, поскольку независимо от шрифта либо все столбцы должны быть полностью свернуты, либо ни один.
Кроме того, поскольку возникла проблема со шрифтом, Я запускаю программу в Windows 7.
РЕШЕНО: Проблема заключалась в шрифте. Единственный шрифт, который, как мне показалось, работал, - это Serif.
Подробнее здесь: https://stackoverflow.com/questions/169 ... ncorrectly