Я работал с этим в последнее время и думал, что добавлю немного к уже полученным ответам.
Чтобы получить список орфографических ошибок в документе для определенного языка, выполните следующие действия:
// Set the proofing language
myDocument.Content.LanguageID = WdLanguageID.wdDanish;
// Get the spelling errors (returns a ProofreadingErrors collection)
var errors = myDocument.SpellingErrors;
// There is no "ProofreadingError" object -> errors are accessed as Ranges
foreach (Range proofreadingError in errors)
Console.WriteLine(proofreadingError.Text);
Как указал Адриано, ключом является сначала указать язык содержимого документа, а затем вы можете получить доступ к орфографическим ошибкам для данного языка. Я проверил это (Word Interop API версии 15, Office 2013), и оно работает.
Если вы хотите получить предложения по каждому из слов с ошибками, я предлагаю вам взглянуть на мой предыдущий ответ на этот вопрос: https://stackoverflow.com/a/14202099/700926
В этом ответе я приведу пример кода, а также ссылки на соответствующую документацию о том, как это сделать. В частности, в примере рассматривается, как выполнить проверку правописания для данного слова на определенном языке (по вашему выбору) с помощью Word Interop. В примере также рассказывается, как получить доступ к предложениям, возвращаемым Word.
Наконец, у меня есть пара замечаний:
- В отличие от текущего принятого ответа (вашего собственного) - этот подход намного быстрее, так как не нужно перебирать каждое слово. Я работал с Word Interop для отчетов (более 100 страниц) и, поверьте мне, вы не хотите сидеть и ждать, пока закончится эта итерация.
- Информацию относительно свойства
SpellingErrors
можно найти здесь .
- Информацию о несуществовании
ProofreadingError
объекта можно найти здесь .