#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. отлично, возможно, это поможет мне в ближайшем будущем