我承认,我对使用 Interop 库很陌生,但人们似乎总是给出的建议是,记录一个宏并检查 vba 代码。问题是,宏没有准确记录我在做什么:单击快速样式将其应用到当前选择.
我的任务非常简单:我需要将快速样式应用于段落(Microsoft.Office.Interop.Word.Paragraph)。使用设置样式但是,命令仅应用基本格式,并且该段落保留其原始快速样式选择(Normal).
使用 Remou 的方法虽然对我有用,但它看起来与我自己的代码非常相似,我无法让它工作,我认为这可能是我对对象模型的理解有点偏差。
public void AddParagraph(string text, string styleName = null)
{
Paragraph paragraph = _document.Content.Paragraphs.Add();
if (styleName != null)
{
paragraph.Range.set_Style(_document.Styles[styleName]);
}
paragraph.Range.Text = text;
paragraph.Range.InsertParagraphAfter();
}
然后我用例如来称呼它AddParagraph("A title", "Heading 1");
,但是使用上面的包装器构建我的文档的结果是,没有应用完整的样式,只有字体、颜色、大小和粗体/斜体。
我用的是我自己的.dotx
文件,具有我自己定义和命名的样式,但只需从 Remou 复制代码即可使用我自己的模板,所以我认为这不是问题,并且使用该代码我无法弄清楚如何在每个段落中附加多个段落他们自己的造型。
谁能指出我的方法有什么问题,或者至少我如何才能使 Remou 提供的答案满足我的要求? :)
这对我有用。
Word.Application _wordApp = new Word.Application();
Word.Document oDoc = _wordApp.Documents.Add();
_wordApp.Visible = true;
_wordApp.Selection.TypeText("Heading");
oDoc.Paragraphs[1].set_Style(Word.WdBuiltinStyle.wdStyleHeading2);
当你说
paragraph.Range.Text = text + paragraph.Range.Text;
你得到的段落比你想象的要多。我认为你需要:
paragraph.Range.Text = text;
Try:
Paragraph paragraph = _document.Content.Paragraphs.Add();
paragraph.Range.Text = text;
if (styleName != null)
{
paragraph.set_Style(_document.Styles[styleName]);
}
paragraph.Range.InsertParagraphAfter();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)