Word 中的项目符号与 C# Interop

Fra*_*nor 6 c# interop ms-word list

我有以下代码,应该将项目符号列表添加到我自动生成的Word文档中。从其他答案来看,我相信代码是正确的,但结果根本没有产生任何要点,它似乎也没有应用缩进。有任何想法吗?

Microsoft.Office.Interop.Word.Paragraph assets;
assets = doc.Content.Paragraphs.Add(Type.Missing);

// Some code to generate the text

foreach (String asset in assetsList)
{
    assetText = assetText + asset + "\n";
}

assets.Range.ListFormat.ApplyBulletDefault(Type.Missing);

// Add it to the document 
assets.Range.ParagraphFormat.LeftIndent = -1;
assets.Range.Text = assetText;
assets.Range.InsertParagraphAfter();
Run Code Online (Sandbox Code Playgroud)

Ter*_*ver 5

发生这种情况是因为您在范围之后添加了多个段落(似乎设置 Text 属性相当于 InsertAfter)。您想要在范围之前插入,以便应用您设置的格式。

    Paragraph assets = doc.Content.Paragraphs.Add();

    assets.Range.ListFormat.ApplyBulletDefault();
    string[] bulletItems = new string[] { "One", "Two", "Three" };

    for (int i = 0; i < bulletItems.Length; i++)
    {
        string bulletItem = bulletItems[i];
        if (i < bulletItems.Length - 1)
            bulletItem = bulletItem + "\n";
        assets.Range.InsertBefore(bulletItem);
    }
Run Code Online (Sandbox Code Playgroud)

请注意,我们为除最后一项之外的所有项目添加了段落结束标记。如果您在最后添加一个,您将得到一个空项目符号。