Excel自动换行:apachePOI中的自动换行(Excel)

我有一个 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
 }

如果有人能给我指出一些网上可用的例子。

感谢您的阅读!

68

你应该能够用一个单元格样式来实现这一点,我试图把一个例子来展示:

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();
        }
    }
}       

祝你好运

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(938)
Windows7搭建ftp服务器:运行WAMP的Windows7上的FTP服务器
上一篇
Win7文件共享:如何检测Win7家庭高级版 Win7专业版 Win7企业版或Win7旗舰版的操作系统
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(54条)