Почему Microsoft.Office.Interop.Word document.Variables.Count == 0?

336
23 июня 2017, 06:05

У меня есть docx файл с переменными, которые я добавил через Экспресс блоки -> Поле... -> Автоматизация -> DocVariable. Там у меня несколько переменных (например FirstName, PageCount, StartDate и т.п.). Если нажать Alt + F9, то эти переменные отображаются.

Потом я использую Microsoft.Office.Interop.Word чтобы подставить в эти переменные значения. Почему-то document.Variables.Count у меня равен 0.

_appSource = new Application();
byte[] wordSourceContent = GetTemplateData(templateId, userId);
_tmpSourceFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "data", Path.GetRandomFileName());
var tmpFileStream = System.IO.File.OpenWrite(_tmpSourceFile);
tmpFileStream.Write(wordSourceContent, 0, wordSourceContent.Length);
tmpFileStream.Close();
_documentSource = _appSource.Documents.Open(_tmpSourceFile);
if (_documentSource.Variables.Count != 0)
{
   var variable = _documentSource.Variables["Summary"];
   variable.Value = "TESTTESTTESTTESTTEST";
   _documentSource.Fields.Update();
   _appSource.Visible = true;
}
Answer 1

Аналогично не смог понять, почему количество переменных=0. Поэтому пошел на вот такое ухищрение:

object variable2 = e.Name;
if (sdoc.Variables.Count == 0)
  {                   
    Word.Variable var2 = sdoc.Variables.Add("FIO", ref variable2);
  }
else
  {
    sdoc.Variables["FIO"].Value = variable2.ToString();
  }
sdoc.Fields.Update();
READ ALSO
Почему не доходят данные в Tcp/ip приложении?

Почему не доходят данные в Tcp/ip приложении?

Есть прикладное клиент-серверное приложение, основанное на сокетах tcp/ipДанные отправляются и получаются спокойно с любыми компами, кроме...

246
Entity Framework. Таблица с деревом категорий

Entity Framework. Таблица с деревом категорий

Делаю дерево категорий, каждая категория может быть родительской и иметь определенное место на текущем уровне, те

287
Как получить часть документа в mongodb?

Как получить часть документа в mongodb?

По умолчанию выборка содержит все поля документа, но мне не нужны все поляНапример, имеется коллекция users вида:

270