我有一个 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 cl 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();
}
}
}
祝你好运
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(51条)