Javaプログラムで、ヘッダーとデータを入力として受け取り、Excelファイルを生成します。
ただし、ヘッダー値が長く、列数が多い場合、Excelシートが不必要に広くなる傾向があります。
ヘッダーがあるため、最後の列の内容を表示するには右にスクロールする必要があります。
これを解決して、セルのコンテンツが大きい場合に値xとすると、自動折り返しが発生し、自動的に行の高さが調整され、列の幅が固定されるように解決できる方法はありますか?.
私が探している大まかなアルゴリズムは次のとおりです。
if(content.size is more then 50 chars){
- apply auto wrap with centred text
- adjust the row height accordingly
- adjust all the cells in the column accordingly
}
誰かが私にオンラインで利用可能ないくつかの例を示すことができるなら。
読んでくれてありがとう!
あなたはセルスタイルでこれを達成できるはずです、私は示すために例をまとめようとしました:
public class SO{
public static void main(String[] args) {
try {
FileInputStream is = new FileInputStream(new File("D:\\Users\\user2777005\\Desktop\\bob.xlsx"));
XSSFWorkbook wb = new XSSFWorkbook(is);
String header = "123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789";
Sheet sheet = wb.getSheet("Sheet1");
sheet.setColumnWidth(0, 18000);
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
if(header.length() > 50){ //Length of String for my test
sheet.setColumnWidth(0, 18000); //Set column width, you'll probably want to Tweak the second int
CellStyle style = wb.createCellStyle(); //Create new style
style.setWrapText(true); //Set wordwrap
cell.setCellStyle(style); //Apply style to cell
cell.setCellValue(header); //Write header
}
wb.write(new FileOutputStream(new File("D:\\Users\\user2777005\\Desktop\\bob.xlsx")));
} catch (IOException e) {
e.printStackTrace();
}
}
}
幸運を!