如何使用interop c#以编程方式清除单词中的特定文本格式

时间:2017-05-13 06:26:27

标签: c# windows office-interop office-automation

我创建了一个Windows应用程序,我们正在自动化MsOffice。

目前我正在开展工作,"清除所有格式化文字"。此方法将清除单词中特定文本的格式,并将设置默认字体及其大小。

以下是我到目前为止所尝试的代码:

public static bool ClearAllFormatting(IQuestion question, string filename, string text )
    {
        WordInterop.Application wordApplication = GetOrCreateWordApplication(question.ObjectStore);

        try
        {
            //Avoid screen flickering or unwanted alerts while initializing
            wordApplication.ScreenUpdating = false;
            WordInterop.WdAlertLevel displayAlertLevel = wordApplication.DisplayAlerts;
            wordApplication.DisplayAlerts = WordInterop.WdAlertLevel.wdAlertsNone;

            WordInterop.Document wordDocument = wordApplication.Documents.Open(filename);
            WordInterop.Paragraph para = wordDocument.Paragraphs[1];
            WordInterop.Range range = para.Range;
            if(range.Find.Execute(text))
            {
                range.Find.ClearFormatting();

            }


            object missing = Type.Missing;

            wordDocument.Save();
            object save_changes = false;
            wordDocument.Close(ref save_changes, ref missing, ref missing);
            return true;
        }
        catch (Exception)
        {
            Cleanup(question.ObjectStore, true);
        }
        return false;
    }

但是,不幸的是,这种方法并没有清除文本上的格式。

任何人都可以帮助我。

由于

0 个答案:

没有答案