abdul subhan mohammed Ответов: 1

Как получить текст из table_of_contents и индексов в документе word с помощью wordinterop C#


Дорогие Все,

Я создал приложение шаблона MsOffice в windows, используя office interop в C#.

Я хочу получить текст из table_of_contents и индексов, которые уже находятся в документе word.

Mycode в:

Что я уже пробовал:

public static bool EvaluateTableOfContents(IQuestion question, string filename)
        {
            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);

                bool result = false;

                WordInterop.TablesOfContents TOC = wordDocument.TablesOfContents;  
                
                TOC.              

                result = TOC.Count > 0;//want to retrieve text as well.

                wordDocument.Close();
                return result;

            }
            catch (Exception)
            {
                Cleanup(question.ObjectStore, true);
            }
            return false;
        }


Индекс
public static bool EvaluateIndexes(IQuestion question, string filename)
        {
            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);

                bool result = false;

                WordInterop.Indexes ind = wordDocument.Indexes;
                
                result = ind.Count > 0;//how to retrieve text?

                wordDocument.Close();
                return result;

            }
            catch (Exception)
            {
                Cleanup(question.ObjectStore, true);
            }
            return false;
        }


кто-нибудь может пожалуйста помочь мне.

Спасибо

1 Ответов

Рейтинг:
2

abdul subhan mohammed

У меня есть решение

if(tableOfContents.Count > 0)
                {
                    WordInterop.Range range = tableOfContents[_index].Range;
                    if (range.Find.Execute(text))
                        result = true;
                }


if (index.Count > 0)
{
    WordInterop.Range range = index[_index].Range;
    if (range.Find.Execute(text))
        result = true;
}