ms-word - OpenXML 2 SDK-Word文档-以编程方式创建项目符号列表

标签 ms-word openxml docx bulletedlist

我正在尝试使用OpenXML SDK 2.0 CTP,以编程方式创建Word文档。在我的文档中,我必须插入一个项目符号列表,列表中的某些元素必须带有下划线。我怎样才能做到这一点?

最佳答案

OpenXML中的列表有些困惑。

有一个 NumberingDefinitionsPart ,用于描述文档中的所有列表。它包含有关列表应如何显示的信息(项目符号,编号等),还为每个列表分配了ID。

然后,在 MainDocumentPart 中,对于要创建的列表中的每个项目,添加一个新段落,并将想要的列表的ID分配给该段落。

因此要创建一个项目符号列表,例如:

  • 您好,
  • 世界!

  • 您首先必须创建一个NumberingDefinitionsPart:

        NumberingDefinitionsPart numberingPart =
          mainDocumentPart.AddNewPart<NumberingDefinitionsPart>("someUniqueIdHere");
    
        Numbering element = 
          new Numbering(
            new AbstractNum(
              new Level(
                new NumberingFormat() { Val = NumberFormatValues.Bullet },
                new LevelText() { Val = "·" }
              ) { LevelIndex = 0 }
            ) { AbstractNumberId = 1 },
            new NumberingInstance(
              new AbstractNumId() { Val = 1 }
            ) { NumberID = 1 });
    
        element.Save(numberingPart);
    

    然后,按照通常的方式创建MainDocumentPart,除了在段落属性中,分配编号ID:

        MainDocumentPart mainDocumentPart =
          package.AddMainDocumentPart();
    
        Document element = 
          new Document(
            new Body(
              new Paragraph(
                new ParagraphProperties(
                  new NumberingProperties(
                    new NumberingLevelReference() { Val = 0 },
                    new NumberingId() { Val = 1 })),
                new Run(
                  new RunProperties(),
                  new Text("Hello, ") { Space = "preserve" })),
              new Paragraph(
                new ParagraphProperties(
                  new NumberingProperties(
                    new NumberingLevelReference() { Val = 0 },
                    new NumberingId() { Val = 1 })),
                new Run(
                  new RunProperties(),
                  new Text("world!") { Space = "preserve" }))));
    
        element.Save(mainDocumentPart);
    

    2.9节中的OpenXML reference guide中提供了对选项的更好解释。

    关于ms-word - OpenXML 2 SDK-Word文档-以编程方式创建项目符号列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1940911/

    相关文章:

    ms-word - docx 中的文本(OpenXML SDK 生成)不可编辑

    c# - 在 word 中的现有选项卡中自定义新菜单

    openxml - 在 OOXML 中如何测量行距?

    c# - 使用 Open XML SDK 进行邮件合并

    java - 使用 docx4j 转换 docx -> pdf 时如何更改字体编码?

    pdf - Word Automation Service 断开目录中的链接

    c# - 如何获取word文档封面的名字?

    c# - 在 C# 中操作 Word 2007 文档 XML

    c# - OpenXmlReader.Skip 应该如何工作?

    python - 在 python 3 中解析 .docx