microsoft 365 developer portals
49 TopicsFeature Request: Expose rowOutlineLevel as readable/writable on Excel.Range in office.js
SUMMARY Excel VBA has long supported Range.OutlineLevel as a read/write property for inspecting and setting row or column grouping levels. Office.js currently has no functional equivalent. We are requesting that rowOutlineLevel and columnOutlineLevel be exposed as functional read/write properties on Excel.Range. CURRENT OFFICE.JS LIMITATION Office.js provides Range.group() and Range.ungroup() starting with ExcelApi 1.9. However, there is currently no reliable way to read or restore the outline/grouping level of a row or column. Example: await Excel.run(async (context) => { const range = context.workbook.worksheets.getActiveWorksheet().getRange("A5"); range.load("rowOutlineLevel"); await context.sync(); console.log(range.rowOutlineLevel); // undefined range.rowOutlineLevel = 1; await context.sync(); // No error, but no effect }); We verified this across ExcelApi requirement sets through 1.21, ExcelApiDesktop 1.1, and Preview APIs. rowOutlineLevel returns undefined after load() and context.sync(). Setting rowOutlineLevel has no effect. The same behavior occurs when using getEntireRow(). rowOutlineLevel and columnOutlineLevel are not exposed in the documented requirement sets. VBA / COM PARITY Excel VBA already provides this functionality through Range.OutlineLevel. Read example: level = Worksheets("Sheet1").Rows(2).OutlineLevel Set or restore example: Worksheets("Sheet1").Rows(2).OutlineLevel = 1 VBA also provides Worksheet.Outline, including ShowLevels, SummaryRow, and SummaryColumn. Capability comparison: Read grouping level: VBA: Range.OutlineLevel Office.js: Not available Set grouping level: VBA: Range.OutlineLevel = n Office.js: Not available Apply grouping: VBA: Range.Group Office.js: Range.group() Remove grouping: VBA: Range.Ungroup Office.js: Range.ungroup() Query or control outline structure: VBA: Worksheet.Outline Office.js: No equivalent BUSINESS IMPACT Our Excel add-in manages Multi-Dimensional Report (MDR) sections that use row grouping for collapse and expand behavior. During refresh and mapping operations, we need to detect existing row grouping and outline levels and restore the grouping if operations such as range copies remove it. Without readable outline levels, we cannot determine which rows are grouped or at what level. Without writable outline levels, we cannot reliably restore the previous structure. Our current workaround requires users to manually fix grouping in Excel. This creates a poor enterprise experience and is a regression compared with our previous VBA-based automation. REQUESTED CHANGES Make rowOutlineLevel readable on Excel.Range so that it returns the actual outline level, such as 1, 2, or 3. Make rowOutlineLevel writable so that grouping levels can be restored programmatically. Provide equivalent read/write support for columnOutlineLevel. As a stretch goal, expose a Worksheet.outline API similar to VBA's Worksheet.Outline, including showLevels(), summaryRow, and summaryColumn. REFERENCES VBA Range.OutlineLevel: https://learn.microsoft.com/en-us/office/vba/api/excel.range.outlinelevel VBA Outline: https://learn.microsoft.com/en-us/office/vba/api/excel.outline Office.js Range.group() and Range.ungroup():https://learn.microsoft.com/en-us/javascript/api/excel/excel.range Office.js Preview APIs: https://learn.microsoft.com/en-us/javascript/api/requirement-sets/excel/excel-preview-apis ExcelApiDesktop 1.1: https://learn.microsoft.com/en-us/javascript/api/requirement-sets/excel/excel-api-desktop-1-1-requirement-set Office.js Range Grouping:https://learn.microsoft.com/en-us/office/dev/add-ins/excel/excel-add-ins-ranges-groupAdd Microsoft Graph APIs for SharePoint Online list views
Microsoft Graph currently provides APIs for SharePoint sites, lists, columns, and list items, but it does not expose SharePoint list views. This creates a limitation for our application that need to read data related to a specific SharePoint list view, not necessarily the entire underlying list. Please add Microsoft Graph support to read, create, update, delete SharePoint list views and get items scoped by the view. Thanks in advance to the teamThe Office JS range.formulas API should preserve the leading single quote.
We have an Excel add-in used in both Excel O365 Desktop and Excel O365 Web. Our add-in processes formulas in cells, including custom functions, and sometimes needs to remove prepended namespaces. The relevant code is: const range = context.workbook.getSelectedRange(); range.load("formulas"); await context.sync(); console.log('The range formulas', range.formulas); const newFormulas = range.formulas; range.formulas = newFormulas; Problem: Some users enter informational strings in cells that resemble formulas like '=AVERAGE([cell start]:[cell end]) To ensure excel treats these as plain text, they start the entry with a single quote ('). Excel correctly stores these as strings and does not throw any formula error. However, when we use the Office JS API to read and reapply these values, the leading single quote is stripped. The API returns: '=AVERAGE([cell start]:[cell end])' When we attempt to set this value back using range.formulas = newFormulas, excel throws the following error: RichApi.Error: The argument is invalid or missing or has an incorrect format. at new n (excel-web-16.00.js:25:328325) at i.processRequestExecutorResponseMessage (excel-web-16.00.js:25:393560) at excel-web-16.00.js:25:391621 The Office JS API does not preserve the leading single quote, so Excel interprets the value as a formula, which is invalid in this context. This behavior is inconsistent with Excel’s native handling, where the single quote ensures the value is treated as text.Extend Outlook Actionable Messages Admin Dashboard Report to support all provider scopes.
The Outlook Actionable admin dashboard report currently only covers Organization-scoped providers. Providers registered at other scopes are excluded, creating a visibility and governance gap for enterprise admins. Please extend this functionality to all available scopes as this would enable admins to maintain comprehensive audit trails and perform end to end lifecycle governance of Actionable Messages providers from a single interface.Outlook 365 for Mobile app - Compose window support for Office JS add-ins
We are exploring the new Office JS add-ons model for Outlook for mobile apps and wanted to integrate our product with iOS/Android apps. While exploring the new Office JS model, we didn't see any way to integrate the product with compose window. Task-pane or commandBar way of integration is missing for compose window. Compose window task-pane or commandBar integration is common use case among iOS/Android users. While composing emails, the following use cases are common in industry: Users want to insert documents or attach emails from 3rd part repository or storage or from content management software. When user sends an email, they want to keep a copy of the email in the repository also Currently these use cases are not possible with add-in model. But it is supported in desktop version as well as web version of add-ins. Without these use cases support, users wont adapt our solutions. So this is required for more user adaptability.Feature Request - Add intent‑based flow creation and context‑aware suggested actions.
I would like to suggest a more guided, intent‑driven experience when building flows in Power Automate. When a user starts a new automation, the designer could first prompt them to describe in natural language what they want to accomplish, then automatically propose an appropriate starter flow, trigger, and key actions based on that intent. At each subsequent step, instead of primarily listing all possible actions and connectors, the interface could provide a prominent “Suggested actions” section that is context‑aware and continuously updated according to the user’s goal and existing steps in the flow, similar to intelligent code suggestions in modern editors. This would accelerate flow creation, reduce the learning curve for new users, and help experienced users quickly discover the most relevant actions without manually searching through long action lists.Feature Request for Enhanced Outlook Add-in Surfaces
Feature Request for Enhanced Outlook Add-in Surfaces Request Title: Expandable/Pop-out Outlook Add-ins with Inline Compose/Reply Integration Products/Platforms: Microsoft Outlook Add-ins (Office.js) across Classic Outlook for Windows, New Outlook for Windows, Outlook for Mac, and Outlook on the web (OWA) Request Type: New extensibility capabilities / UI host surfaces for Outlook add-ins Priority: High (end-user productivity + adoption + enterprise usability) Background We use an Outlook add-in to integrate additional productivity tools into the email workflow to help users save time, reduce context switching, and improve execution quality. This is a core enablement pattern for enterprise users who spend significant time in Outlook. Today, our add-in runs primarily in the task pane, which has notable limitations in flexibility and available space. The current experience is increasingly cluttered and not user-friendly, especially for workflows that require richer UI, multiple steps, or contextual data. Additionally, the add-in is not seamlessly integrated into the new message compose and reply experience (i.e., the workflow is not inline with the compose/reply window), which limits usability for scenarios that must occur at the moment a user is authoring a message. Problem Statement Current task pane constraints lead to: Limited UI real estate (narrow layout, heavy scrolling, cramped forms, poor readability) No user-friendly expand/enlarge options to fit different workflows and screen sizes Reduced usability during compose/reply, where users need the tool inline with message authoring Lower adoption and productivity because the add-in experience feels disconnected and cumbersome In practice, users need more space and tighter integration at the exact point of work (compose/reply), without leaving Outlook or juggling multiple windows. Requested Features We request Microsoft to support the following add-in UI capabilities, ideally consistently across Classic Windows, New Outlook, and OWA: A) Expandable / Resizable Task Pane Allow users to resize/expand the add-in pane (wider layout; optional full-height behavior) Support a compact vs expanded mode with user preference persistence Outcome: Richer workflows become usable without redesigning into cramped layouts. B) Pop-out Add-in Experience Provide a supported pop-out window for the add-in (while maintaining context to the current item) Ensure pop-out works smoothly with enterprise policies and does not break the add-in lifecycle Outcome: Users can work with complex UI without sacrificing mail reading/authoring space. C) Inline Add-in Integration with Compose and Reply Enable add-in UI to appear inline within the compose/reply window (not just as a separate side pane) Support contextual actions/data entry during authoring (e.g., insert content, validate, attach artifacts, update records) Ensure consistent behavior for new compose and reply experiences Outcome: The tool is available at the moment users need it while writing responses, driving adoption and reducing errors. D) Add-in as a Mail Tab Provide a supported extension point for an add-in to appear as a tab in Mail, similar to “Focused/Other” Tab hosts a larger workspace for add-in workflows (e.g., triage/queue/workbench views) Outcome: A first-class workspace in Mail for workflows that don’t fit the task pane model. Key Enterprise Use Cases Multi-step workflows triggered from emails (triage, intake, approvals, routing) Rich forms and guided actions that are impractical in a narrow pane Compose/reply-time actions: insert approved templates/snippets, validate recipients/content, capture metadata, create/update tasks/records Dedicated mail workbench views via a tab for operational roles Acceptance Criteria Cross-client consistency: Classic Windows, New Outlook, and OWA supported with minimal divergence Next Steps for Microsoft Confirm roadmap/feasibility for: expandable task pane, add-in pop-out, inline compose/reply surface, and mail tab surface Provide recommended implementation model/APIs and opportunities for preview/early access for enterprise validation Screenshots for ReferenceFIFO.COST(array_qt_products_in;array_price_of_products_in;array_qt_products_out)
I've created a formula to get the FIFO cost of the last product that is going out of the inventory. It needs 3 arrays. The first array is the array that gets the quantity of the products going in the inventory, the second array is the array that that gets the cost of those products going in, and the third and last array is the quantity of the products going out. This formula is very useful for most industries. You are free to use it. =LAMBDA( InQty, UnitCost, OutQty, LET( PrevOutQty, TAKE(OutQty, ROWS(OutQty)-1), LastOutQty, INDEX(OutQty, SEQUENCE(1,1,ROWS(OutQty))), OutIndex, ROWS(OutQty), RemainingFromPrevious, LET( InMatrix, InQty, OutMatrix, PrevOutQty, ApplyFIFO, LAMBDA(InMatrix, OutMatrix, LET( n, ROWS(OutMatrix), RecursiveFIFO, LAMBDA(self, Remaining, i, IF( i > n, Remaining, self( self, LET( OutAmount, INDEX(OutMatrix, i), CurrentStock, Remaining, Consumed, VSTACK( OutAmount, TAKE( SCAN( OutAmount, CurrentStock, LAMBDA(acc, qty, IF(qty > acc, 0, acc - qty) ) ), ROWS(CurrentStock)-1 ) ), IF(CurrentStock > Consumed, CurrentStock - Consumed, 0) ), i + 1 ) ) ), RecursiveFIFO(RecursiveFIFO, InMatrix, 1) ) ), ApplyFIFO(InMatrix, OutMatrix) ), FirstRemaining, SCAN( LastOutQty, IF(OutIndex = 1, InQty, RemainingFromPrevious), LAMBDA(stock, qty, IF(qty >= stock, 0, stock - qty) ) ), SecondRemaining, VSTACK( LastOutQty, TAKE(FirstRemaining, ROWS(FirstRemaining)-1) ), FIFOQuantities, MAP( IF(OutIndex = 1, InQty, RemainingFromPrevious), SecondRemaining, LAMBDA(stock, qty, MIN(stock, qty)) ), FIFOUnitCost, SUMPRODUCT(FIFOQuantities, UnitCost) / LastOutQty, IF(ROWS(InQty) = 1, UnitCost, FIFOUnitCost) ) ) Have a nice day. Juan Miguel ArraztoaGerman Excel Support Pages – Surprised by Multiple Errors
Dear Microsoft Community, While studying the financial functions in Excel, I was surprised to notice that several German-language support pages contain errors — such as incorrect translations, English function names, non-working example formulas, wrong results, and some spelling mistakes. I enjoy working with this material and would be happy to assist in reviewing and correcting these pages on a paid, freelance basis. I realize this may not be the exact place for such an offer, so I would greatly appreciate it if someone could point me to the right contact person or department at Microsoft. Thank you very much for your help! TheoDeveloper Dashboard Still Showing Old Expired Sandbox After New Sandbox Provisioned
Hi team, I need help with an issue involving the Microsoft 365 Developer Program sandbox. I deleted my old Developer Program profile and rejoined using my Outlook account. I received a new welcome email confirming that a new instant sandbox was provisioned on 10th November 2025, but my Developer Dashboard still shows my old, which expired on 3 November 2025. It has now been 5 days, and the dashboard has not refreshed or linked to the new sandbox tenant. Additional context: My previous sandbox should not have expired, because I was actively using it and did not violate any program terms. The incorrect expiration may have caused this backend sync issue. Here is what I have tried so far: Signing in and out across multiple browsers Using Incognito / Private mode Clearing Microsoft cookies and cache Clicking “Join Now” again Verifying the new welcome email Attempting to sign in directly at admin.microsoft.com Waiting the recommended 24 to 48 hours Contacting Microsoft Support (case 2511101410000272) The issue appears to be that my Developer Dashboard is still linked to the old, expired tenant instead of the newly provisioned sandbox. This looks like a backend synchronization problem that may require a manual re-link by the Microsoft Developer Program team. I would appreciate it if the backend team could help re-link my Developer Program profile to the new sandbox tenant.105Views0likes0Comments