Обновление шаблона MS Word динамически с помощью C # - PullRequest
0 голосов
/ 15 октября 2019

Я добавил закладку в определенную позицию и сохранил этот файл с расширением .dotx. Когда я запускаю решения, он добавляет дату в файл шаблона, но теряет все оставшиеся записи в шаблоне. Я хочу добавить данные в шаблон работы динамически, и данные могут быть расширены, это варьируется.

object oMissing = Missing.Value;
string DateParameter = DateTime.Today.Date.ToString();

Word._Application word = new Word.Application();
word.Visible = false;

// Template
object oTemplate = @"..\SampleTemplate.dotx";
Word._Document document = word.Documents.Add(ref oTemplate, ref oMissing, ref oMissing, ref oMissing);

object oBookMark = "DateParameter";

Word.Range wrdRng = document.Bookmarks.get_Item(oBookMark).Range;
Microsoft.Office.Interop.Word.Range rng = document.Content;

rng.Text = DateParameter;

document.SaveAs2("TestDocument" + DateTime.Now.Millisecond, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);

GC.Collect();

Спасибо

1 Ответ

0 голосов
/ 15 октября 2019

Вы заменяете неправильный Range.Text. В вашем коде вы заменяете объект rng вместо объекта wrdRng, который ссылается на фактическую закладку.

Попробуйте это:

 Word.Range wrdRng = document.Bookmarks.get_Item(oBookMark).Range;
 --Microsoft.Office.Interop.Word.Range rng = document.Content;

 wrdRng.Text = DateParameter;
...