Apache POIで列幅を自動で調整してくれる
Sheet#autoSizeColumnメソッドがあります。
数字や英語の場合、ちゃんと列幅を調整してくれるようですが
日本語の場合、Sheet#autoSizeColumnメソッドを呼び出しても、
幅がうまく調整されません。
幅が微妙に足りなかったりします。
こういう場合、セルにフォントを明示的に指定すると、
列幅が問題なく調整されます。
// ...中略... // 日本語での列幅の自動調整のため、フォントを明示的に指定する。 CellStyle cellStyle = workbook.createCellStyle(); Font font = workbook.createFont(); font.setFontName("Serif"); cellStyle.setFont(font); // ... 中略 ... // 列幅を自動調整する。ここでは最初(0番目)の列の幅を自動調整する。 sheet.autoSizeColumn(0, true);