Создание документа Word с помощью Windows form не работает для всех ПК: System.Runtime.InteropServices.COMException (0x800A16CA)

#c# #runtime #production-environment #word #winforms-interop

#c# #время выполнения #производственная среда #word #winforms-interop

Вопрос:

Я разработал приложение Windows form для создания отчетов Word. Вначале он отлично работал на всех компьютерах, создавая хорошо выполненные документы, после того, как я добавил следующий фрагмент кода, он перестал создавать отчеты при выполнении на некоторых компьютерах.

 object end = 0;
object start = 0;
string title = Regex.Replace(tab.Cell(1, 1).Range.Text, pattern, dati[7]);
Range rng = doc.Range(ref start, ref end);
rng.Text = title;
Object styleHeading2 = "Heading 2";
rng.set_Style(ref styleHeading2);
rng.Paragraphs.OutlineLevel = Word.WdOutlineLevel.wdOutlineLevel2;
rng.Paragraphs.SpaceAfter = 10;
 

Я обнаружил, что на компьютерах, где он не работает, код выдает следующее исключение:
System.Runtime.InteropServices.COMException (0x800A16CA): элемент с указанным именем не существует.
в Microsoft.office.Interop.Word.Range.set_style(объект и реквизит)

У вас есть какие-либо идеи по ее решению??

Спасибо

Комментарии:

1. у вас есть async метод?

2. @karritos нет, я не

Ответ №1:

Проблема заключалась в языке Word. На моем компьютере Word на английском языке, но у моих коллег есть родной язык Word, поэтому они не понимают команду:

  Object styleHeading2 = "Heading 2";
 

Решение состоит в том, чтобы задать стиль с помощью Word.В данном случае перечисление WdBuiltinStyle:

 Object styleHeading2 = WdBuiltinStyle.wdStyleHeading2;
 

Комментарии:

1. отлично, возможно, это поможет мне в ближайшем будущем