从C#生成Word中的多级列表

时间:2015-11-25 14:55:20

标签: c# ms-word office-interop

我有Microsoft Word docx文档,其中包含一些文本和占位符。此文件是使用C#应用程序中的数据填充的模板。我有一件事有问题 - 多级列表。

在docx中我有这个:

  • {占位符}

在C#中我使用的是这段代码:

Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
...
object ph = "{placeholder}";
string replaceWith = "item1" + "\n" + "item2";
wordApp.Selection.Find.Execute(ref ph);
wordApp.Selection.Text = replaceWith;

它产生了预期的结果:

  • ITEM1
  • ITEM2

但我想使用这样的东西:

...
string replaceWith = "item1" + "\n\t" + "item2";
...
wordApp.Selection.Text = replaceWith;

要生成这个(理想情况下使用类似于MS Word的子弹样式(第二级是空子弹)):

  • ITEM1
    • ITEM2

但输出(错误)是:

  • ITEM1
  • ITEM2

2 个答案:

答案 0 :(得分:1)

不可能在字符串中包含这种段落格式。是的,当按下TAB时,Word应用程序可以设置为按照您为最终用户描述的方式运行。但这并没有延续到编程API。代码需要在插入字符串后在第二个段落上应用大纲级别。类似的东西:

Selection.Paragraphs[2].OutlineDemote

答案 1 :(得分:0)

另一种选择可能是

  • {PLACEHOLDER1}
    • {PLACEHOLDER2}