当前位置: 首页 > 知识库问答 >
问题:

在apache POI中自动换行(Excel)

戚俊美
2023-03-14

我有一个java程序,它以头和数据作为输入,并产生一个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
 }

如果有人能给我提供一些网上的例子。

感谢阅读!

共有1个答案

蒋嘉颖
2023-03-14

你应该可以用单元格样式来实现这一点,我已经试着把一个例子放在一起展示:

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

祝你好运!

 类似资料:
  • 问题内容: 如何显示带有自动换行符的长字符串,网站地址,单词或符号集,以保持div宽度?我猜是一个自动换行。通常添加空格是可行的,但是是否有CSS解决方案,例如自动换行? 例如,它(非常讨厌)与div重叠,强制水平滚动等。 我可以在上面的字符串中添加什么以使其完全适合div中的几行或浏览器窗口? 问题答案: 长话短说: 就CSS解决方案而言,您必须:强制元素显示滚动条,并仅剪切掉任何多余的文本。有

  • 我怎么能在PhpStom中启用换行? 我只需要为我的某些文件(扩展名为 .txt)启用它。可能吗?

  • 问题内容: 这段文字的行为完全符合我在Google Chrome浏览器(和其他现代浏览器)上的期望: 当浏览器足够宽时,a +和b +处于同一行。 缩小浏览器范围时,a +和b +放在单独的行上。 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 当b +不再适合时,它会折断并放在两行上(总共三行)。 bbbbbbbbbbbbbbbbbbbbbbbb bbbbbbbb 太好了 但是

  • 问题内容: 谁能告诉我为什么在IE8中不起作用? 谢谢 问题答案: 如果我没记错的话,Internet Explorer8确实支持该样式,但是样式元素必须具有layout

  • 本文向大家介绍Android LinearLayout实现自动换行,包括了Android LinearLayout实现自动换行的使用技巧和注意事项,需要的朋友参考一下 由于前段时间项目中使用到了自动换行的线性布局,本来打算用表格布局在里面一个个的用Java代码添加ImageView的,但是添加的View控件是不确定的,因为得靠服务器的数据返回,就这样手动用Java代码画布局的方式就这样夭折了,因为

  • 问题内容: 我无法解决这个问题,感到很傻,但是如何关闭自动换行功能?css 属性可以通过强制启用,但不能强制 关闭 (只能与value 一起保留)。 如何强制自动换 行 ? 问题答案: 您需要使用CSS 属性。 特别是和是最常用的值。第一个似乎是您所追求的。