В word 365 где я могу найти переменные шаблона, чтобы разместить их на странице?

#c# #ms-word

#c# #ms-word

Вопрос:

У нас есть существующая устаревшая система, в которой я могу загружать существующие шаблоны, обновлять их и сохранять как документы с моими правками. Вот часть кода.

 #region Open existing Template and write something to it.
    object missing = Type.Missing;
    Word.Application app = new Word.Application();
    Word.Document doc = app.Documents.Open(@"C:\test395310.dot", ref missing, true);
    doc.Activate();                                                    
    doc.Variables["CASE PLAN_PLAN_STATUS"].Value = "asdf1";
    doc.Variables["CASE PLAN_PROGRAM"].Value = "asdf2";
    doc.Fields.Update();
#endregion
  

Используя аналогичную логику, я пытаюсь создать новый шаблон word с двумя переменными.

 private static void CreateTemplate()
    {
        //have it open word and create a template with fields from gen
        object missing = Type.Missing;
        Word.Application app = new Word.Application();
        Word.Document doc = app.Documents.Add(ref missing, ref missing, true);
        doc.Activate();
        doc.Variables.Add("CASE PLAN_PLAN_STATUS", "XXXXX");
        doc.Variables.Add("ANOTHER ONE", "XXXX");
        doc.Fields.Update();
        doc.SaveAs2(@"C:\newTemplate.dot");
        doc.Close();
        app.Quit();
    }
  

Документ создается, однако в Word я не могу найти ни одну переменную. Моя цель — открыть word и разместить в шаблоне с помощью formatting. ie

 Plan Status: <<CASE PLAN_PLAN_STATUS>>
  

Если я нажму вставить / Изучить быстрые части / поле, я смогу увидеть различные варианты, но моих двух переменных там нет. Кто-нибудь знает, где еще посмотреть? Или лучший подход?

Ответ №1:

В вашем шаблоне вы можете использовать поля, изменяемые документально.

https://support.microsoft.com/en-us/office/field-codes-docvariable-field-32a81e22-c5c1-4b16-8097-f0de851db67c?ui=en-USamp;rs=en-USamp;ad=US Это выглядело бы как { DocVariable Case_Plan_Plan_Status } с отображаемыми кодами полей.

В отличие от свойств документа, переменные документа могут быть созданы, изменены или удалены только с помощью vba.

В документе нет встроенных переменных. В пользовательский интерфейс не встроен инструмент для просмотра того, что доступно среди переменных.

Я знаю несколько хороших надстроек для управления ими в пользовательском интерфейсе.

Один из них — старый органайзер сочетаний клавиш Криса Вудмана. http://addbalance.com/word/download.htm#ChrisWoodman Этот позволяет просматривать, создавать, редактировать и удалять переменные из Word, но не создает поле DocVariable, предоставляя это делать вам.

Еще одна утилита — Graham Mayor или Greg Maxey. http://gregmaxey.com/word_tip_pages/cc_var_bm_doc_prop_tools_addin.html или http://www.gmayor.com/BookmarkandVariableEditor.htm Оба этих последних могут добавить поле DocVariable в ваш документ после выбора переменной из списка.