Если я создал пользовательскую вкладку с помощью ExcelDna.AddIn и CustomRibbon.xml, как мне развернуть надстройку officejs, используя manifest.xml, чтобы надстройка officejs была размещена внутри этой пользовательской вкладки, созданной с помощью ExcelDna.AddIn?
По сути, это похоже на комбинирование подходов ExcelDna.AddIn и надстройки manifest.xml officejs. Причина не важна. Мне нужна помощь, чтобы это работало.
Если id вкладки в CustomRibbon.xml – myTab, то я ссылался на него внутри manifest.xml следующим образом:
`<ExtensionPoint xsi:type="PrimaryCommandSurface">
<CustomTab id="myTab">
...
</>`
Однако это не работает. Как мне поступить в этом случае?
Дополнительно, если id в CustomRibbon.xml указан с помощью атрибута ‘idQ’, и, по моим исследованиям, manifest.xml не поддерживает idQ, как мне сделать так, чтобы он указывал на эту вкладку с значением idQ?
idQ в CustomRibbon.xml:
`<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnLoad">
<ribbon>
<tabs>
<tab idQ="OurTab">
<group idQ="MyGroup"
label="My Group">
</group>
</tab>
....
</>`
Пожалуйста, помогите, спасибо!
Я хочу правильно сослаться на вкладку (или ее id) внутри manifest.xml надстройки officejs, чтобы я мог загрузить надстройку в пользовательскую вкладку, созданную с помощью подхода CustomRibbon.xml ExcelDna.AddIn.
Ответ
Чтобы разместить надстройку Office.js в пользовательской вкладке (custom tab), созданной с помощью ExcelDna.AddIn и файла CustomRibbon.xml, необходимо убедиться, что вы правильно настроили свой файл манифеста (manifest.xml). Ниже приведены шаги, которые помогут вам это сделать.
Шаги для интеграции Office.js надстройки в ExcelDna.CustomRibbon:
-
Определите правильный идентификатор вкладки:
Убедитесь, что идентификатор вкладки, который вы используете в CustomRibbon.xml, точно совпадает с тем, что вы указали в manifest.xml. Например, если ваш идентификатор вкладки установлен какmyTab
, он должен выглядеть следующим образом:<ExtensionPoint xsi:type="PrimaryCommandSurface"> <CustomTab id="myTab"> ... </CustomTab> </ExtensionPoint>
Если идентификатор вкладки использует атрибут
idQ
(к примеру,idQ="OurTab"
), то в этом случае придется настроить его немного иначе, так как manifest.xml действительно не поддерживаетidQ
. -
Использование idQ в ExcelDna и Office.js:
ПосколькуidQ
не поддерживается в manifest.xml, лучше всего использовать простоid
для всей иерархии вкладок и групп. Если у вас есть специфические требования к именованию, вам нужно бы будет изменить способ, которым вы работаете с идентификаторами в CustomRibbon.xml. Например, можно изменитьidQ
наid
так:<tab id="OurTab"> <group id="MyGroup" label="My Group"> </group> </tab>
-
Ограничения CustomRibbon.xml:
Важно отметить, что, хотя вы можете использовать подход с интеграцией в ExcelDna, Office.js может накладывать свои собственные ограничения на то, как вы собираете пользовательский интерфейс. Поэтому проверьте, чтобы ваши команды и группы вCustomRibbon.xml
были совместимыми с тем, что разрешено Office.js. - Проверка и отладка:
После того, как вы настроили mфайл manifest.xml, завершите шаги развертывания и тестирования в Office. Следите за ошибками в консоли разработчика (F12), чтобы следить за возможными проблемами при загрузке или инициализации вкладки.
Пример manifest.xml:
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="TaskPaneApp">
<Id>YOUR-ADDIN-ID</Id>
<Version>1.0.0.0</Version>
<ProviderName>YOUR-NAME</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName>My Add-In</DisplayName>
<Description>Описание вашего аддона</Description>
<ExtensionPoint xsi:type="PrimaryCommandSurface">
<CustomTab id="myTab">
<Group id="MyGroup" label="Моя группа">
<Label resid="groupLabel" />
<Control xsi:type="Button" id="myButton">
<Label resid="buttonLabel" />
<Supertip>
<Title resid="buttonTitle" />
<Description resid="buttonDescription" />
</Supertip>
<Icon>
<bt:Image size="16" resid="icon16" />
<bt:Image size="32" resid="icon32" />
<bt:Image size="80" resid="icon80" />
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>myFunction</FunctionName>
</Action>
</Control>
</Group>
</CustomTab>
</ExtensionPoint>
</OfficeApp>
Заключение:
Объединение возможностей ExcelDna.AddIn и Office.js может быть сложным, но правильная настройка идентификаторов и ясное понимание ограничений помогут вам добиться успеха. Следуя вышеописанным шагам, вы сможете интегрировать вашу Office.js надстройку в созданную с помощью ExcelDna вкладку.