У меня есть 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;
}
Аналогично не смог понять, почему количество переменных=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();
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть прикладное клиент-серверное приложение, основанное на сокетах tcp/ipДанные отправляются и получаются спокойно с любыми компами, кроме...
Делаю дерево категорий, каждая категория может быть родительской и иметь определенное место на текущем уровне, те
По умолчанию выборка содержит все поля документа, но мне не нужны все поляНапример, имеется коллекция users вида: