私は、JavaでApache POIを使用してExcelファイルを作成しています。私はデータを入力してから、各列を自動サイズ調整しようとしますが、サイズは常に間違っています(そして、はと一貫していると思います)。最初の2つの行は常に(?)完全に折りたたまれています。 Excelで列を自動サイズ設定すると、完全に機能します。Apache POI autoSizeColumnが正しくサイズ変更されない
空白のセルは書かれていません(私は信じています)、サイズ変更は最後です。
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;
}
は私が似てそこにいくつかの質問があります知っているが、それらのほとんどは、単にの場合あるなど、これはエラー処理なしで煮詰めたバージョンです:
ここでは、関連するコードですデータを書き込む前にサイズを変更してください。そして、そうでない少数はより複雑/未回答です。
編集:私はいくつかの異なるフォントを使用してみましたが、動作しませんでした。あまりにも驚くべきことではありません、どのようなフォントでも、すべての列が完全に折りたたまれていても、まったく存在しなくてもかまいません。フォントの問題が思い付いたので
また、私が解決
のWindows 7上でプログラムを実行している:をそれはフォントの問題でした。私が見つけた唯一のフォントはSerifでした。
これらの2つのQ&Aを確認しましたか? [1](http://stackoverflow.com/questions/11573993/setting-column-width-in-apache-poi/11574647)、[2](http://stackoverflow.com/questions/7412457/crash-when -calling-autosizecolumn-on-worksheet-run-under-linux-servicemix/12517025#12517025)...これはおそらく、使用されているフォントで何かをすることがあるでしょう – kiwiwings
@kiwiwings私はWindowsにあるデフォルトのフォント(Calibri)ちょうど良い。私はフォントを他のものに変更して結果を投稿しようとしますが、フォントではないと思います。 – Jaws212
'Serif'フォントを使ってみることができますか?私はこれがJavaが認識しているフォントに関連していると感じています。 – Shaded