Надстройка Excel для настраиваемой вкладки ленты для включения элементов управления из MSIP.ExcelAddin

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

На ленте я хочу включить элемент управления чувствительностью из приложения Office365 Sensitivity (MSIP.ExcelAddin). Похоже, что это как обычная надстройка MS с mso-control, так и сторонняя надстройка с x1-control.

Я могу успешно создавать и распространять настраиваемую ленту, используя встроенный настройщик ленты, файл * .exportedUI, я могу использовать либо группу, либо элемент управления из сторонней надстройки. Версия MSO не работает, как и исходная вкладка Home.

<mso:cmd app="Excel" dt="0"/>
<mso:customUI xmlns:x1="MSIP.ExcelAddin" xmlns:mso="http://schemas.microsoft.com/office/2009/07/customui">
    <mso:ribbon>
        <mso:tabs>
            <mso:tab id="mso_c1.CD9101F" label="3rd Party Tab" insertBeforeQ="mso:TabInsert">
                <mso:group idQ="x1:adxRibbonGroup_f46a9e941d544d01ad8b43917c503243"/>
                <mso:group id="mso_c2.CD9101F" label="My Group" autoScale="true">
                    <mso:control idQ="x1:adxRibbonMenu_b0e02808fb2f409f90503955cef756aa" visible="true"/>
                </mso:group>
            </mso:tab>
            <mso:tab id="mso_c3.CD96023" label="MSO Tab" insertBeforeQ="mso:TabInsert">
                <mso:group idQ="mso:GroupClassifyLabelProtect"/>
                <mso:group id="mso_c4.CD96033" label="My Group" autoScale="true">
                    <mso:control idQ="mso:ClassifyLabelProtect" visible="true"/>
                </mso:group>
            </mso:tab>          
        </mso:tabs>
    </mso:ribbon>
</mso:customUI>

Однако, делая то же самое в моем проекте надстройки, я не могу заставить его работать.

<customUI xmlns:x1="MSIP.ExcelAddin" xmlns="http://schemas.microsoft.com/office/2009/07/customui">
    <ribbon>
        <tabs>
            <tab id="mso_c1.CD9101F" label="3rd Party Tab" insertBeforeMso="TabInsert">
                <group idQ="x1:adxRibbonGroup_f46a9e941d544d01ad8b43917c503243"/>
                <group id="mso_c2.CD9101F" label="My Group" autoScale="true">
                    <control idQ="x1:adxRibbonMenu_b0e02808fb2f409f90503955cef756aa" visible="true"/>
                </group>
            </tab>
            <tab id="mso_c3.CD96023" label="MSO Tab" insertBeforeMso="TabInsert">
                <group idMso="GroupClassifyLabelProtect"/>
                <group id="mso_c4.CD96033" label="My Group" autoScale="true">
                    <control idMso="ClassifyLabelProtect" visible="true"/>
                </group>
            </tab>  
        </tabs>
    </ribbon>
</customUI>

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

Я что-то делаю неправильно при определении или ссылке на пространство имен для сторонней надстройки?


person Jakob Åsell    schedule 28.03.2021    source источник


Ответы (1)


Вы можете разместить пользовательский интерфейс ленты на настраиваемой вкладке или в группе, указав пространство имен. Ключ указывает то же уникальное пространство имен в теге <customUI>. Затем элементы управления могут ссылаться на это пространство имен с помощью idQ. Свойство idQ элементов управления существует для того, чтобы позволить нескольким надстройкам совместно использовать контейнеры, такие как настраиваемые вкладки и группы, но не размещать настраиваемые элементы управления из других надстроек в ваши.

Кстати, есть ли у вас какие-либо ошибки пользовательского интерфейса в приложении Office?

По умолчанию, если надстройка пытается управлять пользовательским интерфейсом Microsoft Office и терпит неудачу, сообщение об ошибке не отображается. Однако вы можете настроить приложения Microsoft Office для отображения сообщений об ошибках, связанных с пользовательским интерфейсом. Вы можете использовать эти сообщения, чтобы определить, почему настраиваемая лента не отображается или почему лента отображается, но не отображаются элементы управления. Подробнее об этом читайте в Как показать статью об ошибках пользовательского интерфейса надстройки.

person Eugene Astafiev    schedule 04.04.2021
comment
Спасибо, ошибок пользовательского интерфейса нет, еще не настроил, попробую. Я начинаю понимать, что ссылка на элемент управления другой надстройки невозможна. Однако добавление еще одной группы надстройки на мою вкладку должно быть возможным. Итак, как я могу определить пространство имен для этого MSIP.ExcelAddin? Кстати, это x1-часть или MSIP.ExcelAddin-part? - person Jakob Åsell; 06.04.2021
comment
Я включаю ошибки пользовательского интерфейса, могу подтвердить, что он работает, так как обнаружил ошибку в другой надстройке. Когда я исправил это, у меня больше не было ошибок. В своей настраиваемой ленте я пытаюсь добавить группы из MSIP. Они не отображаются и ошибок нет. Я добавил и MSO-версию, и idQ-версию. - person Jakob Åsell; 06.04.2021
comment
При добавлении элемента управления (idQ-версия) в качестве элемента управления я получаю сообщение об ошибке, в котором говорится, что я не могу добавить пользовательские элементы управления как ‹control›. Итак, я попытался использовать ‹menu›, теперь у меня что-то есть на ленте, но не тот элемент управления, который я ожидал. Какой это может быть контроль? Кнопка, которая раскрывается в меню. - person Jakob Åsell; 06.04.2021
comment
Вроде это тема для другой ветки, да? - person Eugene Astafiev; 06.04.2021
comment
Что вы имеете в виду под другой темой? Тема состоит в том, как получить элементы управления MSIP в моей собственной настраиваемой ленте. - person Jakob Åsell; 06.04.2021