Я попытался заполнить поля формы в Microsoft Word с помощью С# Interop Assemblies со следующим кодом
string filename = @"N:\mehler\Vorlage2.dotx";
Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document doc = new Microsoft.Office.Interop.Word.Document();
doc = word.Documents.Open(filename);
doc.Activate();
foreach (Microsoft.Office.Interop.Word.FormField field in doc.FormFields)
{
switch (field.Name)
{
case "Text2":
field.Range.Text = "1";
break;
default:
break;
}
}
doc.SaveAs2(@"N:\mehler\Ausgefuellt.docx");
doc.Close();
word.Quit();
System.Diagnostics.Process.Start(@"N:\mehler\Ausgefuellt.docx");
Microsoft Word не может открыть файл Ausgefuellt.docx и показывает сообщение о том, что произошла неизвестная ошибка.
Я создал простой Word-документ с небольшим количеством неформатированного текста и 2 текстовых форм-полей
может кто-нибудь сказать мне, что пошло не так, или если у меня ошибка в исходном коде
Изменить: Мне удалось указать проблему. Я создал документ, содержащий только одно текстовое поле. В Word 2013 это найдено в теме "Formulare aus Vorversionen" (я бы перевел это на "Formfields from прежние версии" ) Если я прокомментирую весь блок foreach, чтобы открыть и сохранить документ, я получаю тот же результат.
Если я открываю исходный файл непосредственно в Word, это не проблема. Я также попытался загрузить документ и сделать Word Visible. Результат выглядел как пустой экземпляр Word без загрузки документа.