Apache POI中.docx的项目符号列表

时间:2015-01-20 10:27:36

标签: java apache ms-word apache-poi

我在文档中创建项目符号列表时遇到问题。 我去年5月尝试过这个解决方案,但它对我不起作用: How to create a bulleted list in Apache POI XWPF Document? 我能够创建编号列表,但不能创建我需要的列表。 我正在使用最新的每晚版本的库(poi-3.12-beta1),因为在那里解决了有关Google App Engine功能的一些问题。 这是我的段落的CTP的样子:

<w:pPr xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape">
  <w:pStyle w:val="ListParagraph"/>
  <w:numPr>
    <w:numId w:val="1"/>
  </w:numPr>
</w:pPr>

...但即使将numId Value更改为0,也根本没有项目符号,所有大于1的数字都会给出相同的编号列表。这就是我手动更改numId:

的值的方法
CTDecimalNumber ctDecimalNumber = CTDecimalNumber.Factory.newInstance();
ctDecimalNumber.setVal(BigInteger.valueOf(2l));
p.getCTP().getPPr().getNumPr().setNumId(ctDecimalNumber);

我猜它必须对<w:numPr>做些什么,这也可以改变吗?

谢谢

1 个答案:

答案 0 :(得分:0)

经过大量的实验和各种测试后,我仍然无法使用Apache POI创建无序列表。似乎这个功能刚刚消失。 我能够使用各种List-Paragraphs(如有序列表/子列表或无序列表/子列表)的唯一方法是在模板doc的开头手动编写这4段,在这些地方克隆它们我需要使用它们,并在文档生成结束时删除文档正文元素1-4。 然而,即使在这里也存在一个小问题:因为文档中的所有有序列表都来自相同的根段落,所以它们都是相关的,不会从1开始,而是从最后一个列表项索引开始:

示例:

  1. ASD
  2. ZXC
  3. adasdasdasd dasdasd asdasd fsdfsdfsdfs dfsfsdfs sdefsdfsd sdfsdfsdf asda adasd asdas dasda asdas asdasd vsdfsdfsdf sdfsdfsdf sdfsdfsdfs

    1. sdasd
    2. fsdfsdfs
相关问题