写入带有样式的word文档

时间:2017-10-03 06:39:22

标签: java text ms-word apache-poi

我将列表中的文字写入word文档,现在是我的问题,它没有任何风格/中断。

像这样:

  

测试测试测试测试

但我想这样:

  

测试

     

测试

     
      
  • 列表项
  •   
  • 列表项
  •   

我使用以下代码写入word文档:

XWPFParagraph paragraph = nieuwDocument.createParagraph();

XWPFRun run = paragraph.createRun();

run.setText(gevonden.toString());

nieuwDocument.write(out);
nieuwDocument.close();
out.close();
System.out.println("Klaar");

gevonden.toString() = gevonden是包含我的文字的列表。

我尝试过split()功能,但不能在列表上工作。

有人提出建议吗?

更新

我确实将函数run.setText()放入for循环并添加了add.Break() 但是每次它都会从List中写出文本,直到他离开for循环。

for(int i = 0; i < gevonden.size(); i++)
{   
 run.addBreak();
 run.setText(gevonden.toString());
}

输出是:

  

[测试测试测试测试]

     

[测试测试测试测试]等。

知道如何从列表i获取gevonden。 如果我尝试这种方式:run.setText(gevonden[i].toString());

我收到错误:

表达式的类型必须是数组类型,但它已解析为List

我想如果我得到i我的问题就解决了

3 个答案:

答案 0 :(得分:2)

根据documentation,您可以使用run.addBreak()方法添加中断并使用run.addCarriageReturn()回车。

至于列表,我不确定,但你可以试试这个:

XWPFParagraph para = doc.createParagraph();
para.setVerticalAlignment(TextAlignment.CENTER);
para.setNumID(addListStyle(abstractNum, doc, numbering));
para.getCTP().getPPr().getNumPr().addNewIlvl().setVal(BigInteger.valueOf( your_indent_level));

我认为您可能需要循环使用gevonden的内容并将其添加到各自的级别。我从未使用过xwpfrun,但我希望这会有所帮助:)

答案 1 :(得分:0)

如果你想在下一行列出一个项目,当你得到一个项目时,尝试添加'/ n'或'/ r'

答案 2 :(得分:0)

感谢Axel Richter

以下是代码:

for(int i = 0; i < gevonden.size(); i++)
{   
    run.addBreak();
    run.setText(gevonden.get(i));

}

使用gevonden.get(i);我获得了List的一部分,而不是整个列表。