c# 在 MS Word 中比较样式 objects
c# comparing style objects in MS Word
我必须编辑 word 文档中的所有标题。
我试过这个:
Word.WdBuiltinStyle[] styleArray = {
Word.WdBuiltinStyle.wdStyleHeading1,
Word.WdBuiltinStyle.wdStyleHeading2,
Word.WdBuiltinStyle.wdStyleHeading3,
Word.WdBuiltinStyle.wdStyleHeading4,
Word.WdBuiltinStyle.wdStyleHeading5,
Word.WdBuiltinStyle.wdStyleHeading6,
Word.WdBuiltinStyle.wdStyleHeading7,
Word.WdBuiltinStyle.wdStyleHeading8,
Word.WdBuiltinStyle.wdStyleHeading9
};
foreach (Word.Paragraph paragraph in Globals.ThisAddIn.Application.ActiveDocument.Paragraphs)
{
if (styleArray.Any(a => a.Equals((Word.WdBuiltinStyle)paragraph.Range.get_Style())))
{
paragraph.Range.Font.Size = size;
paragraph.Range.Font.Name = font;
}
}
但是它说我不能施法,我觉得这不是一个很好的方法。
它也不适用于
if (styleArray.Contains(paragraph.Range.get_Style()))
请问有什么帮助吗?
内置样式枚举与实际样式之间存在差异。这就是比较不起作用的原因。该数组需要是 样式 的数组。例如:
Word.Document doc = Globals.ThisAddin.Application.ActiveDocument;
enter code here
Word.Style[] styleArray = {
doc.Styles(Word.WdBuiltinStyle.wdStyleHeading1),
doc.Styles(Word.WdBuiltinStyle.wdStyleHeading2),
doc.Styles(Word.WdBuiltinStyle.wdStyleHeading3) //and so on
};
我必须编辑 word 文档中的所有标题。
我试过这个:
Word.WdBuiltinStyle[] styleArray = {
Word.WdBuiltinStyle.wdStyleHeading1,
Word.WdBuiltinStyle.wdStyleHeading2,
Word.WdBuiltinStyle.wdStyleHeading3,
Word.WdBuiltinStyle.wdStyleHeading4,
Word.WdBuiltinStyle.wdStyleHeading5,
Word.WdBuiltinStyle.wdStyleHeading6,
Word.WdBuiltinStyle.wdStyleHeading7,
Word.WdBuiltinStyle.wdStyleHeading8,
Word.WdBuiltinStyle.wdStyleHeading9
};
foreach (Word.Paragraph paragraph in Globals.ThisAddIn.Application.ActiveDocument.Paragraphs)
{
if (styleArray.Any(a => a.Equals((Word.WdBuiltinStyle)paragraph.Range.get_Style())))
{
paragraph.Range.Font.Size = size;
paragraph.Range.Font.Name = font;
}
}
但是它说我不能施法,我觉得这不是一个很好的方法。
它也不适用于
if (styleArray.Contains(paragraph.Range.get_Style()))
请问有什么帮助吗?
内置样式枚举与实际样式之间存在差异。这就是比较不起作用的原因。该数组需要是 样式 的数组。例如:
Word.Document doc = Globals.ThisAddin.Application.ActiveDocument;
enter code here
Word.Style[] styleArray = {
doc.Styles(Word.WdBuiltinStyle.wdStyleHeading1),
doc.Styles(Word.WdBuiltinStyle.wdStyleHeading2),
doc.Styles(Word.WdBuiltinStyle.wdStyleHeading3) //and so on
};