как создать многоуровневый список маркировки и нумерации с помощью библиотеки Open XML - PullRequest
0 голосов
/ 04 мая 2020

Я использовал Open XML для создания многоуровневого списка с нумерацией и маркером, как показано ниже:

• Hello,
   1. world!

, но когда я изменил NumberingLevelReference маркера и нумерации, чтобы сделать это:

1. Hello,
   • world!

пуля исчезла! мой код здесь

using (WordprocessingDocument wordDoc = WordprocessingDocument.Create(mem, WordprocessingDocumentType.Document, true))
            {
                MainDocumentPart mainDocumentPart =
                              wordDoc.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, "))),
                      new Paragraph(
                        new ParagraphProperties(
                          new NumberingProperties(
                            new NumberingLevelReference() { Val = 1 },
                            new NumberingId() { Val = 3 })),
                        new Run(
                          new RunProperties(),
                          new Text("world!")))));

                element.Save(mainDocumentPart);


                NumberingDefinitionsPart numberingPart =
                mainDocumentPart.AddNewPart<NumberingDefinitionsPart>("someUniqueIdHere");

                Numbering element1 =
                  new Numbering(
                    new AbstractNum(
                      new MultiLevelType() { Val = MultiLevelValues.Multilevel },
                        new Level(                                
                        new NumberingFormat() { Val = NumberFormatValues.Bullet },
                        new LevelText() { Val = "•" }
                      ){ LevelIndex = 0 }                        
                    )

                    { AbstractNumberId = 0 },
                    new NumberingInstance(
                      new AbstractNumId() { Val = 0 }
                    )
                    { NumberID = 1 }

                    );
                element1.Save(numberingPart);
            }

Как я могу сделать это правильно? если вам нужно больше информации, я вышлю вам. Заранее спасибо ...

...