Создание пользовательской вкладки с использованием ExcelDna.AddIn в manifest.xml для надстройки Office.js

Вопросы и ответы

Если я создал пользовательскую вкладку с помощью 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:

  1. Определите правильный идентификатор вкладки:
    Убедитесь, что идентификатор вкладки, который вы используете в CustomRibbon.xml, точно совпадает с тем, что вы указали в manifest.xml. Например, если ваш идентификатор вкладки установлен как myTab, он должен выглядеть следующим образом:

    <ExtensionPoint xsi:type="PrimaryCommandSurface">
     <CustomTab id="myTab">
       ...
     </CustomTab>
    </ExtensionPoint>

    Если идентификатор вкладки использует атрибут idQ (к примеру, idQ="OurTab"), то в этом случае придется настроить его немного иначе, так как manifest.xml действительно не поддерживает idQ.

  2. Использование idQ в ExcelDna и Office.js:
    Поскольку idQ не поддерживается в manifest.xml, лучше всего использовать просто id для всей иерархии вкладок и групп. Если у вас есть специфические требования к именованию, вам нужно бы будет изменить способ, которым вы работаете с идентификаторами в CustomRibbon.xml. Например, можно изменить idQ на id так:

    <tab id="OurTab">
     <group id="MyGroup" label="My Group">
     </group>
    </tab>
  3. Ограничения CustomRibbon.xml:
    Важно отметить, что, хотя вы можете использовать подход с интеграцией в ExcelDna, Office.js может накладывать свои собственные ограничения на то, как вы собираете пользовательский интерфейс. Поэтому проверьте, чтобы ваши команды и группы в CustomRibbon.xml были совместимыми с тем, что разрешено Office.js.

  4. Проверка и отладка:
    После того, как вы настроили 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 вкладку.

Оцените материал
Добавить комментарий

Капча загружается...