CtrlK
BlogDocsLog inGet started
Tessl Logo

pyxll/pyxll-agent-skills

A curated collection of Agent Skills for working with PYXLL, to help AI agents write and understand code using the PyXLL Excel add-in.

99

1.56x
Quality

90%

Does it follow best practices?

Impact

100%

1.56x

Average score across 17 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

backstage.mdskills/office-customui-xsd/resources/

Backstage (File Menu)

The Backstage is the full-screen view opened by clicking the "File" tab. You can add custom tabs and fast-command buttons to it.

Structure

backstage
  ├─ tab (0–255, CT_BackstageTab)
  │    ├─ firstColumn (CT_BackstageGroups)
  │    │    ├─ taskFormGroup  (or)
  │    │    ├─ group (CT_BackstageGroup)
  │    │    └─ taskGroup
  │    └─ secondColumn (CT_SimpleGroups)
  │         ├─ group
  │         └─ taskGroup
  └─ button (0–255, CT_BackstageFastCommandButton)

backstage element

<backstage onShow="OnBackstageShow" onHide="OnBackstageHide">
  <tab id="myTab" label="My Tab" keytip="MT">
    ...
  </tab>
  <button id="myFastCmd"
          label="Quick Export"
          imageMso="FileExportToExcel"
          onAction="OnQuickExport"
          isDefinitive="true"/>
</backstage>
AttributeDescription
onShowCallback when Backstage opens
onHideCallback when Backstage closes

tab element (BackstageTab)

A full tab page in the Backstage.

<tab id="myBackstageTab"
     label="My Settings"
     keytip="MS"
     insertAfterMso="TabInfo"
     columnWidthPercent="40">
  <firstColumn>
    <group id="myGroup" label="Options">
      ...
    </group>
  </firstColumn>
  <secondColumn>
    <group id="myGroup2" label="Preview">
      ...
    </group>
  </secondColumn>
</tab>
AttributeDescription
columnWidthPercentPercentage width of the first column (1–99)
firstColumnMinWidth / firstColumnMaxWidthPixel constraints for first column
secondColumnMinWidth / secondColumnMaxWidthPixel constraints for second column
title / getTitleOptional large title shown in the tab

button (fast command)

A button in the left navigation pane of the Backstage (like "New", "Open", "Save As").

<button id="myFastCmd"
        label="Export Data"
        imageMso="DataExportExcel"
        onAction="OnExportData"
        isDefinitive="true"
        insertAfterMso="FileSave"/>

isDefinitive="true" closes the Backstage when the button is clicked.

group (BackstageGroup)

Groups in the Backstage have a different structure from ribbon groups.

<group id="myBsGroup"
       label="Export Settings"
       style="normal"
       showLabel="true"
       helperText="Configure export options below.">
  <primaryItem>
    <button id="exportBtn"
            label="Export Now"
            imageMso="DataExportExcel"
            onAction="OnExport"
            isDefinitive="true"/>
  </primaryItem>
  <topItems>
    <editBox id="filename" label="File name:" getText="GetFilename" onChange="OnFilenameChanged"/>
    <dropDown id="format" label="Format:" onAction="OnFormatChanged" getSelectedItemIndex="GetFormatIndex">
      <item id="csv"  label="CSV"/>
      <item id="xlsx" label="Excel"/>
    </dropDown>
  </topItems>
  <bottomItems>
    <checkBox id="includeHeader" label="Include header row" getPressed="GetIncludeHeader" onAction="OnHeaderToggle"/>
  </bottomItems>
</group>
AttributeValuesDescription
style / getStyle"normal", "warning", "error"Visual style of the group
helperText / getHelperTextstringDescriptive text shown above controls
showLabel / getShowLabelbooleanWhether to show the group label

Structure of group:

  • primaryItem (optional, 0–1): a button or menu as the primary action
  • topItems (optional): controls shown above the primary item area
  • bottomItems (optional): controls shown below the primary item area

Controls available in Backstage groups

The topItems and bottomItems (and groupBox, layoutContainer children) accept:

ElementDescription
buttonAction button with style (normal/borderless/large) and expand
checkBoxCheckbox with expand, description, screentip
editBoxText input with alignLabel, expand
dropDownDropdown with alignLabel, expand, optional item children
radioGroupGroup of radio buttons (radioButton children)
comboBoxEditable dropdown with item children
hyperlinkClickable link with target/getTarget, expand
labelControlRead-only text with noWrap, expand
groupBoxLabelled box container for further controls
layoutContainerLayout helper with align, expand, layoutChildren
imageControlDisplays an image with altText/getAltText

expand attribute

Most Backstage controls support expand:

ValueDescription
"horizontal"Fill available horizontal space
"vertical"Fill available vertical space
"both"Fill both directions
"neither"Use natural size (default)

alignLabel attribute

Controls label alignment on Backstage controls: "topLeft", "top", "topRight", "left", "center", "right", "bottomLeft", "bottom", "bottomRight"

taskGroup / taskFormGroup

taskGroup shows a list of tasks (like the "New" tab showing templates).

<taskGroup id="myTaskGroup" label="Templates" allowedTaskSizes="largeMediumSmall">
  <category id="cat1" label="Built-in">
    <task id="task1"
          label="Blank Workbook"
          imageMso="FileNew"
          onAction="OnNewBlank"
          description="Create a blank workbook"/>
  </category>
</taskGroup>

allowedTaskSizes values: "largeMediumSmall", "largeMedium", "large", "mediumSmall", "medium", "small".

taskFormGroup is similar but each task contains Backstage group elements (a form layout).

README.md

tile.json