Сохранить переменную в MS Word и использовать ее в приложении для переменной в гиперссылке?

Сохранить переменную в MS Word и использовать ее в приложении для переменной в гиперссылке?

У меня есть сценарий, в котором я предоставляю больше, чем20 гиперссылоквиртуальной машины. Так что, если виртуальные машиныIP-адрес меняется, Мне нужноизменить вручнуюпо всему документу. Есть ли способ сохранить переменную типа

vm_ip = "ec2-13-211-bla-bla.amazonaws.com"

Поэтому вместо того, чтобы давать гиперссылкуec2-13-211-bla-bla.amazonaws.com/swagger-ui.html/контроллер-еды, Я могу дать{vm_ip}/swagger-ui.html/контроллер-еды

Что-то вроде этого. Я изучал макросы, но они были запутанными, и я не имел ни малейшего представления, как они работают.

решение1

  1. Это может быть намного сложнее, чем может показаться, поэтому этот ответ довольно длинный. Нужно понять несколько ключевых вещей и много шагов. По моему скромному мнению, это не то, что можно положиться на конечного пользователя, который сделает это правильно, по крайней мере, без очень хорошего набора инструкций. Лично я считаю, что это задача «программирования», и поскольку это не то, что кто-то будет делать очень часто, я бы сказал, что для этого все равно нужен хороший набор инструкций.

  2. Если вы просто хотите, чтобы эти гиперссылки работали в Word, есть две основные возможности в зависимости от того, хотите ли вы, чтобы эти гиперссылки были просто текстом или активными гиперссылками.

    Если вы хотите вставить их в Word таким образом, чтобы они работали при сохранении документа как HTML или PDF, этот ответ не охватывает это, и вам следует изменить свой вопрос, включив это требование. Кроме того, описанное здесь кодирование полей может использоваться только в настольных версиях Word (оно также может работать в одной из веб-версий или «устройств»-версий, но в последний раз, когда я смотрел, эти версии не очень хорошо работали с кодами полей.

  3. Таким образом, если вы хотите, чтобы эти ссылки были текстами в Word, которые Word не считает активными ссылками (например, они могут находиться в вашем документе, чтобы люди могли скопировать текст ссылки в другое место), то вы можете сделать это с помощью полей SET и закладок.

    Например, если у вас есть только один «базовый» адрес, такой как «ec2-13-211-bla-bla.amazonaws.com», который вы повторно используете во многих местах, возможно, с дополнительной адресной информацией, вы можете использовать

    { SET base1 "ec2-13-211-bla-bla.amazonaws.com" }

    в начале вашего документа (на самом деле, в заголовке первой страницы может быть более безопасное место, чтобы поместить его, чтобы избежать случайного удаления). Затем, следуя примеру, который вы привели, вам нужно поле REF:

    { REF base1 }/swagger-ui.html/food-controller

    (На самом деле, отсутствие REF имеет преимущество):

    { base1 }/swagger-ui.html/контроллер-еды

    Все { } должны быть парами фигурных скобок кода специального поля, которые можно вставить с помощью Ctrl-F9 в настольной версии Word для Windows.

    Насколько мне известно, разделение полного URL-адреса на поле REF и часть обычного текста не позволяет Word пытаться преобразовать полученный текст ссылки в кликабельное поле ГИПЕРССЫЛКА.

    Если вам нужно изменить «ec2-13-211-bla-bla.amazonaws.com» на что-то другое, например, просто на «ec2-13-211-new-bla-bla.amazonaws.com», вы изменяете этот текст в поле SET, обновляете поле SET (выбираете и нажимаете F9), а затем обновляете все остальные поля (например, ctrl-A, F9).

    Если вам нужно что-то, что сложнее удалить случайно, чем поле SET, вы можете создать и использовать пользовательское свойство документа. Например, в Word 2016/2019/365,

    а. перейдите в Файл->Информация

    б. щелкните раскрывающийся список «Свойства» (в верхней части правого столбца)

    в. нажмите Дополнительные свойства

    г. щелкните вкладку «Пользовательская»

    е. в текстовом поле введите «base1»

    е. в поле «Тип» убедитесь, что выбрано «Текст»

    г. в поле «Значение» введите ec2-13-211-bla-bla.amazonaws.com

    h. убедитесь, что флажок «Ссылка на содержимое» не отмечен

    я. нажмите ОК

    Тогда кодировка поля, необходимая для ссылки, будет следующей:

    { DOCPROPERTY base1 }/swagger-ui.html/food-controller

    Чтобы обновить ссылки, вам нужно вернуться в диалоговое окно «Пользовательские свойства», изменить значение свойства demo1, затем выбрать текст документа и обновить все поля в документе (снова ctrl-A, F9).

    Если у вас несколько разных «базовых адресов», то вам нужно либо несколько полей SET, либо несколько пользовательских свойств документа, например, называемых base1, base2, base3 или как-то еще.

  4. Если вам нужно кликабельное поле гиперссылки, то все становится немного сложнее, потому что тогда вам придется вложить поле REF в поле HYPERLINK, например, так:

    { ГИПЕРССЫЛКА "{ base1 }/swagger-ui.html/food-controller" }

    Снова,все{ } должны быть специальными символами фигурных скобок поля ctrl-F9, а не теми, которые можно ввести на клавиатуре

    Но есть две проблемы:

    а. Отображаемый текст фиксируется, когда Word впервые создает поле HYPERLINK (или когда вы впервые обновляете его). Кроме того, он фиксируется таким же, как и начальный «текст ссылки», который вы предоставили.

    б. Word имеет тенденцию разрешать поле REF (т.е. заменять поле его результатом) при сохранении, закрытии и повторном открытии документа. Поэтому в этот момент вы теряете возможность изменять базовый адрес и обновлять гиперссылки.

    Вы, вероятно, не заметите (b), если будете экспериментировать с одним полем гиперссылки, потому что то, что, по-видимому, мешает Word разрешить поле REF, это наличие закладки (которую вы можете вставить вручную или с помощью поля SET) где-то в поле HYPERLINK. Поскольку Word вставляет скрытую закладку с именем _GoBack в точке вставки, если последнее, что вы делали перед закрытием документа, было редактирование поля HYPERLINK,чтоВложенные поля поля, вероятно, сохранятся при повторном открытии.

    Итак, трюк, чтобы предотвратить потерю вложенного кодирования полей HYPERLINK, заключается в том, чтобы гарантировать, что в каждом из них есть закладка. Вы можете сделать это, вставив поле SET с другим именем в каждую HYPERLINK, например:

    { ГИПЕРССЫЛКА "{ base1 }/swagger-ui.html/food-controller" { SET save1 " " } } { ГИПЕРССЫЛКА "{ base1 }/swagger-ui.html/something-else" { SET save2 " " } }

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

    { ГИПЕРССЫЛКА "{ base1 }/swagger-ui.html/food-controller" { SET "save{ SEQ save }" " " } } { ГИПЕРССЫЛКА "{ base1 }/swagger-ui.html/something-else" { SET "save{ SEQ save }" " " } }

    (Примечание: я считаю, что эта идея возниклаздесь(Тот факт, что он полагается на «трюк», означает, что Microsoft может легко подорвать его, внеся изменения в программное обеспечение, но на данный момент это, похоже, работает.)

    Вы должны иметь возможность использовать либо поля SET/REF, либо подход Custom Document Property для части { base1 }, как описано выше.

    Наконец, как быть с проблемой (а), то есть с «отображаемым текстом» ссылки?

    На самом деле решить эту проблему немного сложнее.

    A. Предположим, вам нужен «отображаемый текст», который не зависит от «текста ссылки» — например, если вы хотите, чтобы отображаемый текст был

    мой отображаемый текст

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

    { ГИПЕРССЫЛКА "{ base1 }/swagger-ui.html/food-controller" { SET save1 " " } }

    Затем, там, где вы действительно хотите гиперссылку, вставьте гиперссылку, которая показывает текст, который вы хотите. Один из способов — вручную вставить поле HYPERLINK, например

    • используйте ctrl-F9, чтобы вставить пару фигурных скобок кода поля { }

    • внутри введите ГИПЕРССЫЛКУ "мой отображаемый текст"

    • выберите поле и используйте F9, чтобы обновить его результат. Результат должен показать текст, который вы хотите

    • выделите и скопируйте весь текст этого другого поля HYPERLINK "{ base1 }/swagger-ui.html/food-controller" { SET save1 " " }

    • выберите ГИПЕРССЫЛКУ «мой отображаемый текст» и вставьте другой код, чтобы заменить его

    • обновить значение поля.

    Здесь есть одна проблема, которая может стать очевидной, если вы прочитаете "B". Я объясню в конце.

    Б. Если вместо этого вы хотите, чтобы отображаемый текст совпадал с текстом ссылки, вам придется прибегнуть к другому приему.

    Допустим, вы использовали эту кодировку

    { SET base1 "ec2-13-211-bla-bla.amazonaws.com" }
    
    { HYPERLINK "{ base1 }/swagger-ui.html/food-controller" { SET save1 " " } }
    

    Тогда то, что вам нужно сделать, этоудалитьзакладку "base1", затем обновите поля HYPERLINK. В этот момент вы должны увидеть, что результат поля HYPERLINK показывает ошибку, подобную этой (в англоязычной версии Word):

    Error! Hyperlink reference not valid.
    

    Кажется, это сбрасывает отображаемый текст. Так что теперь вы можете заново создать закладку base1 с нужным вам адресом и снова обновить все поля HYPERLINK.

    При использовании полей SET и REF вам не нужно удалять поле SET. Вы меняете SET на SEQ:

    { SET base1 "ec2-13-211-bla-bla.amazonaws.com" }
    

    к

    { SEQ base1 "ec2-13-211-bla-bla.amazonaws.com" }
    

    Затем обновите поле, и это уничтожит закладку.

    После обновления гиперссылок вы меняете SEQ обратно на SET и изменяете адрес, например, так, чтобы у вас было

    { SET base1 "ec2-13-211-new-bla-bla.amazonaws.com" }
    

    затем обновите поле, затем все поля HYPERLINK.

    Выполнение эквивалентной операции с Custom Document Properties, вероятно, немного более неудобно, поскольку вы можете переименовать свойства за один шаг. Лучшее, что вы, вероятно, можете сделать, это выбрать свойство в списке, изменить имя и нажать Add. Это фактически создает новое свойство. Удалите старое, обновите поля HYPERLINK, затем вернитесь и заново создайте нужные вам имена свойств и значения.

    В качестве последнего замечания, если вам действительно нужен подход «А», при котором отображаемый текст не изменяется, вам следуетнетсделать что-нибудь, что удалит значение закладки "base1". Если вы это сделаете, это сбросит отображаемый текст и вам, вероятно, придется заново вставить поле HYPERLINK, которое воссоздаст нужный вам текст. Нехорошо.

решение2

Если вы просто хотите установить значение, то можете использовать то, что сказал @yokki.

Для гиперссылки Word предоставляет "базу гиперссылки". Так что если вы укажете "swagger-ui.html/food-controller" в гиперссылке, она займет {$hyperlink_base}/swagger-ui.html/food-controller. Если вы хотите использовать гиперссылку на другие веб-сайты и не хотите использовать "базу гиперссылки", используйте полный URL.

Как установить «базу гиперссылки»?

  1. Перейти к ленте «Файл»
  2. Справа вверху «Свойства»
  3. щелкните по нему и выберите «Дополнительные свойства».
  4. Только на вкладке «Сводка» последнее поле содержит «Базу гиперссылок».

В моем случае я установил значение «ec2-13-211-bla-bla.amazonaws.com».

Итак, все мои ссылки, где я указал относительный путь, а не полный URL,

Требуется "ec2-13-211-bla-bla.amazonaws.com/swagger-ui.html/food-controller".

Поэтому, если мне нужно будет сменить IP, я просто обновлю «базу гиперссылок».

Связанный контент