JavaScript эквивалент `XMLMapping.SetMapping` - PullRequest
0 голосов
/ 18 июня 2020

Есть ли какой-либо метод в JavaScript API, эквивалентный этому методу ? Я хочу иметь возможность сопоставлять части Custom XML с элементами управления содержимым в MS Word с помощью надстройки, которую я создаю. Документы, которые я нахожу, содержат только C# или VBA, но моя кодовая база находится в React (JavaScript).

Итак, я нашел один ответ , связанный с моим вопросом. Но могу ли я узнать, как использовать insertOoxml? И какие примеры OO XML для этого?

UPDATE

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

enter image description here

1 Ответ

0 голосов
/ 22 июня 2020

Невозможно получить контроль над встроенным сопоставлением XML Word с Office JavaScript так, как это можно сделать с помощью VBA. Вам нужно будет разработать свою собственную систему.

Вы должны использовать ContentControl API в API-интерфейсах c Word, специфичных для хоста, особенно событие onDataChanged (https://docs.microsoft.com/en-us/javascript/api/word/word.contentcontrol?view=word-js-preview#ondatachanged), чтобы определить, когда данные в элементе управления содержимым изменились.

Вы можете использовать свойства ContentControl.id или ContentControl.tag, чтобы определить элементы управления, которые должны совместно использовать одни и те же данные. Пользовательская часть XML, содержащая данные, также должна иметь элемент или атрибут, в котором хранится массив идентификаторов (или тегов) элементов управления содержимым, которые должны использовать эти данные.

Но не используйте API CustomXMLPart в общих API, с которыми вы связались. Сложно смешивать общие API-интерфейсы с API-интерфейсами Word, специфичными для c. Поскольку вам необходимо использовать API-интерфейсы Word для c Word для ContentControls, вам также следует использовать API CustomXMLParts в API-интерфейсах Word c для хоста. Например: https://docs.microsoft.com/en-us/javascript/api/word/word.customxmlpart?view=word-js-preview

Когда запускается событие ContentControl.onDataChanged, ваш код обработчика должен изменить данные в пользовательской части XML, чтобы они соответствовали новым данным. Он также должен использовать сохраненные идентификаторы (или теги) элементов управления содержимым в части XML, чтобы идентифицировать другие элементы управления содержимым, которые должны получать новые данные. Используйте метод ContentControl.insertText, чтобы изменить текст.

Убедитесь, что вы используете API предварительного просмотра (на сегодняшний день он находится в предварительной версии).

...