解决Java生出word文件中换行符识别成空格或不生效问题

昨天在使用poi-tl 生成Word文档时,发现换行符“\n”失效,变成了空格。以前使用时,没有出现过这种现象。

       StringBuilder res = new StringBuilder();

        //获取当前系统支持的换行符
        String line = System.getProperty("line.separator");

        for (int i = 0; i <5 ; i++) {
            res.append("第").append(i+1).append("行").append(line);
        }

        return res.toString();

  生成的Word文档,换行符变成了空格。

 

之后我尝试用两个换行符,还是不行。

res.append("第").append(i+1).append("行").append(line).append(line);

 当我在文档里手动里加回车换行时,发现换行符有3个,这说明程序加的两个换行符没问题,只是Word没有触发。

 

猜测这个模板可能有问题,但不知道问题在哪?换模板不现实。

期间在网上搜索,并没有找到解决办法。

后来,我想了想,如果我手动在模板处加换行符,生成Word时,该模板已有换行效果,应该能正常生成换行效果。

加在前面,发现不行

 

加在后面,可以

 

附上模板

 

这只是一个解决办法。

由于显示效果不太好,我又改了下模板和代码。 

 

 

 

        StringBuilder res = new StringBuilder();

        //获取当前系统支持的换行符
        String line = System.getProperty("line.separator");
        res.append(line);
        for (int i = 0; i <5 ; i++) {
            res.append("第").append(i+1).append("行").append(line);
        }

        return res.toString();    

 

 

至此解决。

 

 

 

 

 

 

posted @ 2021-12-02 10:34  hy33  阅读(5232)  评论(2编辑  收藏  举报