【发布时间】:2013-03-12 20:11:12
【问题描述】:
一个应该创建一个编号列表,另一个应该创建一个项目符号列表,如本网站所示
http://sharepointweblog.blogspot.com/2009/07/open-xml-insert-bullets-and-numbering.html
但两者都有编号..为什么?
另外.. 使用 openXML 以编程方式创建 word doc 似乎非常痛苦。. 是否有任何好的参考资料可以帮助解释创建基本 word doc? (一些文字,一些要点)..
Paragraph paraBullet1 = new Paragraph(
new ParagraphProperties(
new ParagraphStyleId() { Val = "ListParagraph" },
new NumberingProperties(
new NumberingLevelReference() { Val = 0 },
new NumberingId() { Val = 1 })),
new Run(new Text("List 1"))
) { RsidParagraphAddition = "005F3962", RsidParagraphProperties = "00330DA9", RsidRunAdditionDefault = "00330DA9" };
Paragraph paraTest2 = body.AppendChild(paraBullet1);
Paragraph paraBullet2 = new Paragraph(
new ParagraphProperties(
new ParagraphStyleId() { Val = "ListParagraph" },
new NumberingProperties(
new NumberingLevelReference() { Val = 0 },
new NumberingId() { Val = 2 })),
new Run(new Text("List 2"))
) { RsidParagraphAddition = "00031711", RsidParagraphProperties = "00031711", RsidRunAdditionDefault = "00031711" };
Paragraph paraTest2x = body.AppendChild(paraBullet2);
【问题讨论】:
-
我想编号格式是在 docx 文件包内的 numbering.xml 文件中定义的。您可以使用 OpenXML SDK 2.0 Productivity Tool(您可能已随 SDK 下载)打开您的 docx 文件,反映 document.xml 的代码并尝试找到合适的样式。通过查看该文件,我建议使用
NumberFormatValues.Bullet和AbstractNum元素来查找它所附加的元素。然后找到与之关联的NumberingInstance,并查看它的NumberId属性。不过我还没有对此进行测试,因此有效 ID 可能位于不同的属性或对象中。 -
+1 表示“OpenXML 很痛苦”。我们应该成立一个支持小组。
-
可以写一些工厂方法来简化代码。
标签: c# ms-word openxml office-2007