What’s new for Office Add-ins at Build 2022
Use Microsoft Access Dataverse connector with Power Platform
Microsoft Access customers told us they need more hybrid solutions that keep the value and ease of use of Access but have the security and flexibility of cloud-based storage and development platforms. We are please to announce the general availability of the Access connector for Dataverse and Power Platform.
Access developers can now:
- Create new, front-end app scenarios on mobile devices or with Microsoft Teams.
- Share and edit Access data in real time using cloud-based data stores and front-end apps created in Access, Power Apps Mobile, and Microsoft Teams.
- Manage security and compliance Dataverse cloud storage using Azure Active Directory and role-based security.
Access customers on the current channel for Microsoft 365 and Office now can update their Microsoft Access build to 16.0.15128.20248 or later. For more information, see Access Connector for Dataverse and Power Platform Is Released for General Availability. You can also view one of our sessions at Build:
- Access Connector for Dataverse and Power Platform GA Launch
- Pro Developer Capabilities of Power Apps and Dataverse for Access Developers
Data Type APIs for Excel
We’ve added support for additional features in the Excel Data Type APIs, including more customizability to the pre-existing structures and reinforced support for read and write.
Linked data type support
You can now both read and write objects of type Linked Entity. These are the same data types backed by Geography or Stocks data sources. When you point valuesAsJson at a cell containing one of these structures, you get all the information that makes up these entities.
Card view additions
With the first release of the API, most of the views that were rendered for entity cards were default with little flexibility. We’ve added additional support to allow you to control how the data is displayed to your customers. The following image is an example of a card view in Excel.
More card view features are shown in the following table. Explore a code sample of these features in the entity value sample in the OfficeDev/office-js-snippets Excel samples repository.
Control different properties within an entity
Property metadata allows you to control how different properties within an entity are surfaced inside different Excel components.
|autoComplete||Controls the exposure of the property within the autocomplete dropdown for dot notation in formulas.|
|cardView||Controls the exposure of the property within the card.|
|calcCompare||Controls whether the property is included in comparisons of two entities.For example, =IF(A1=A2, TRUE), where A1, A2 contain entities.|
|dotNotation||Controls the exposure of the property in dot notation.|
We’ve added support for more icons found in the product for the entity. Previously, the double diamond was the only icon available to entities.
|Locks old icon||Locks new icon|
To learn more about the Excel Data Type APIs and see a demo of new features, watch our Build 2022 on-demand session Excel add-ins and data types.
- Copy chart/pivot table with data — The ChartSeries.GetDimensionDataSourceString API gets the data source of the chart series to support copy or other scenarios for the Chart object. Explore a sample of this API in the chart data source sample in the OfficeDev/office-js-snippets Excel samples repository.
- Get source data of a pivot table — The PivotTable.GetDataSourceString API gets the data source of the PivotTable, which enables copying or further action to a PivotTable. Explore a sample of this API in the PivotTable data source sample.
- Discover dependency — The Range.getDependents API gets a range’s all dependents across worksheets. Explore a sample of this API in the Range dependents sample. For more information, see Get formula precedents and dependents.
- Auto expand table — The TableRowCollection.add API adds one or more rows to the table. And it now supports an option to use the row below the table as the new added table row instead of inserting a new row. This option means better support for co-authoring. For more information, see Add rows to tables.
|ChartSeries||Excel.Chart.ChartSeries.GetDimensionDataSourceString||Gets the string representation of the source data of the chart series.|
|Excel.Chart.ChartSeries.GetDimensionDataSourceType||Gets the source data type of the chart series.|
|PivotTable||Excel.PivotTableScopedCollection.GetFirstOrNullObject||Gets the first PivotTable in the collection.|
|Excel.PivotTable.GetDataSourceString||Returns the string representation of the data source for the PivotTable.|
|Excel.PivotTable.GetDataSourceType||Gets the type of the data source for the PivotTable.|
|Tables||Excel.TableRowCollection.add||Adds an optional parameter “alwaysInsert” to Excel.TableRowCollection.add, which specifies whether the new rows will be inserted into the table when new rows are added.|
|Range||Excel.Range.GetDependents||Returns a WorkbookRangeAreas object that represents the range containing all the dependent cells of a specified range in the same worksheet or in multiple worksheets.|
|Shape||Excel.Shape.DisplayName||Get a shape’s display name.|
These APIs extend and enrich the following scenarios:
- Comment — Get basic information from comments and replies, delete comments, or add rich formatting to comments and replies.
- Footnotes/endnotes — Get contents of footnotes/endnotes in the Word document.
- Track Changes — Get or set different track change modes, or get the reviewed text based on different modes.
The following example shows how to set bold text and add a hyperlink to comments.
New APIs around Fields are now available in Word web-only API list (preview). These APIs were highly requested from the community. The additional support for Fields will allow you to deliver better solutions for your customers.
PowerPoint Shapes API and Selection APIs
|Presentation||SlideScopedCollection getSelectedSlides()||Returns the selected slides in the current view of the presentation. The first object in the collection is the active slide.|
|ShapeScopedCollection getSelectedShapes()||Returns the selected shapes in the current view of the presentation. The first object in the collection is the active shape.|
|TextRange getSelectedTextRange()||Returns the selected TextRange in the current view.|
|void setSelectedSlides( string slideIds )||Selects the slides with the given IDs in the current view of the presentation. The first object will become the active slide.|
|Slide||void setSelectedShapes( string shapeIds)||Selects the shapes with the given IDs in the current view of the presentation. The first shape will be the active shape.|
The slide which the function will be called on will become the active and only selected slide.
|TextRange||void setSelected()||Selects this TextRange in the current view. The Shape which this TextRange belongs to will become the active shape.|
The Slide which has the Shape that was just activated will become the active slide.
|int start||The starting position of the text range in the shape which it belongs to.|
|int length||The length of the text range which this object holds.|
|TextFrame getTextFrame()||Returns the owner TextFrame of this TextRange.|
|TextFrame||Shape getShape()||Returns the owner Shape of this TextFrame.|
|Shape||Slide getSlide()||Returns the owner Slide of this Shape.|
|ShapeScopedCollection||int getCount()||Gets the number of shapes in the collection.|
|Shape getItemOrNullObject(string id)||Gets a shape using its unique ID. If such a shape does not exist, an object with an `isNullObject` property set to true is returned.|
|Shape getItemAt(int index)||Gets a shape using its zero-based index in the collection. An error is thrown if the index is out of range.|
|int getCount()||Gets the number of slides in the collection.|
|Slide getItemOrNullObject(string id)||Gets a slide using its unique ID. If such a shape does not exist, an object with an `isNullObject` property set to true is returned.|
|Slide getItemAt(int index)||Gets a slide using its zero-based index in the collection. An error is thrown if the index is out of range.|
Word, Excel, and PowerPoint Ribbon API update
We continue to make great progress evolving our Ribbon APIs for Word, Excel, and PowerPoint. These APIs enable developers to create custom contextual experiences for Office Add-in users! At Build 2022, we are announcing additional support for both Ribbon API 1.1 and Ribbon API 1.2.
Ribbon API 1.1 — Enable/disable add-in commands
Announcing the Preview for Ribbon API 1.1 on PowerPoint and Word. This preview functionality has only been available on Windows and Mac. We encourage you to try the feature and provide feedback so we can improve the experience before GA. For more information, see Enable and Disable Add-in Commands.
Ribbon API 1.1 brings the capability to contextually enable and disable add-in commands. When some functionality in your add-in should only be available in certain contexts, you can programmatically enable or disable your custom add-in commands. For example, an add-in command that changes the header of a table should only be enabled when the cursor is in a table.
Ribbon API 1.2 — Enable/disable add-in commands
Ribbon API 1.2 for Excel on Windows, on the web, and on Mac is now generally available! We have received great feedback from our partners and have added support for Mac. We encourage you to let us know if you have requirements for Ribbon API 1.2 on other applications such as Word and PowerPoint. For more information, see Create custom contextual tabs in Office Add-ins.
Ribbon API 1.2 enables developers to add custom contextual tabs to the Office ribbon as shown in the following example.
A notable example of native contextual tabs can be found in the previous example. Now, when users click on a table, Excel shows the Table Design tab. With Ribbon API 1.2, add-in developers can create similar experiences for add-in scenarios in Excel!
Outlook add-ins developer preview for new manifest
At Build 2022, we announced the general availability of Teams JS SDK v2, which enables you to extend Teams apps across Microsoft 365 with personal tabs and search-based message extensions into Outlook using a single application and distribution model. These new capabilities complement the deep integration into mail and calendar enabled by Outlook add-ins. Together, they further expand your toolbox for integrating with Outlook and Microsoft 365. As we continue to enhance the add-in platform, we’ll enable you to include your add-ins in the same single application and distribution model.
Enhancements to distribution, discovery, and development experiences
We are working on several improvements for Outlook add-ins this calendar year.
- Bundle and distribute your add-ins with other Microsoft 365 integrations within a single package and unified manifest format.
- Improve discovery and acquisition via a new store experience to reach a wide, relevant set of Microsoft 365 end users and admins.
- Reuse your existing code while experiencing new developer scenarios and tools, including project/manifest conversion and authoring tools.
Build an Outlook add-in with a Teams manifest
Starting today, you can use a Teams developer preview manifest to build an add-in for Outlook. The new JSON-based format is designed to be fully compatible with the current add-in platform’s web apps and content. You can reuse your knowledge and code as you experiment with the new format.
- To get started, see Build an Outlook add-in with a Teams manifest (preview).
- For a conceptual overview of the new format, see JSON manifest overview.
As we release these improvements, the new format will continue to be fully compatible and support reuse with your existing add-in code. Additionally, add-ins developed using the new format will have built-in backward compatibility and existing add-ins will continue to work with full production support.
More Outlook add-in updates
In addition to the excitement of the new manifest items, the Outlook add-ins team is also pleased to announce the following:
Hybrid collaboration in Outlook
We’re in the process of releasing Every Meeting Online for third-party online meeting providers, a feature that enables users to provide a link to an online meeting on all appointments. It’s now available in Outlook on the web, on Mac, and on mobile. In the coming months, Outlook on Windows will also enable this capability.
Smart Alerts preview
This is a follow-up to Ignite last November where we shared this exciting feature to help employees stay engaged as they face unfamiliar, unpredictable distractions in the hybrid workplace. Smart Alerts help your users to send better emails by enabling add-ins to run upon sending an email, analyze content, and provide recommendations or mandatory updates on emails. The feature has been in preview for a few months in Outlook on Windows. And, we’re finalizing implementation in Outlook on the web and on Mac so we can move to GA in the coming months. For more information on Smart Alerts, see Use Smart Alerts and the OnMessageSend event in your Outlook add-in (preview).
Review and respond to Office Store reviews in Partner Center
Ratings and review insights dashboard in Partner Center for Office add-ins is now in General Availability. Customers leave over 100 reviews on Microsoft 365 offers in AppSource every month. Customers use reviews to express delight, share feedback, and raise issues with the apps they’ve acquired. Now, Office Add-in publishers can directly connect with their customers through reviews, respond the feedback, increase customer success, and improve the ratings of their offers.
The new dashboard improvements allow you to interact with the widgets in the following ways:
- Analyze – Select an offer to view its average ratings, total ratings, ratings breakdown, and ratings with reviews.
- Respond – Promptly reply to customer feedback of their Office store apps.
- Connect – View contact emails and connect with customers who provided consent to email about feedback.
- Discuss – Make edits, delete, and reply in threaded discussions for deeper customer engagement.
We hope you are as excited about these new features as we are. Take a moment to learn more and engage with us!
- Learn with docs at Office Add-ins and Script Lab.
- Ask questions on Stack Overflow using the office-js or outlook-web-addins or on GitHub.
- Share your feedback on Office Add-ins at Microsoft 365 Developer Platform Ideas forum.
- Join us at our monthly community calls, the second Wednesday of each month at 8:00AM Pacific Time.
- Join the Microsoft 365 developer program to get the access and resources you need to develop your Office Add-in.
- Discover resources for Office Add-ins on the Office Dev Center.