{"ref":"artifact:abap2ui5-addons-office-addin","page":"/artifacts/abap2ui5-addons-office-addin","json":"/artifacts/abap2ui5-addons-office-addin.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"abap2ui5-addons-office-addin","name":"abap2UI5 for Excel","artifact_type":"app","ecosystem":"abap","domain":"ui-and-frontend-bridge","secondary_domains":["data-and-persistence"],"origin_ring":"community-org","use_as":"starting-point","flavors":[{"key":"standard-abap","source":{"url":"https://github.com/abap2ui5-addons/office-addin","title":"abap2UI5-addons/office-addin — README, Apps that use Excel (developers)","checked":"2026-10-17","quote":"It is lint-clean for ABAP Standard, ABAP Cloud and the 7.02 downport."}},{"key":"abap-cloud","source":{"url":"https://github.com/abap2ui5-addons/office-addin","title":"abap2UI5-addons/office-addin — README, Install (admins)","checked":"2026-10-17","quote":"**ABAP Cloud** (SAP BTP, ABAP environment; S/4HANA Cloud public edition) has no BSP applications: pull only `src/01` there and serve the host page [without a BSP](#without-a-bsp)."}}],"description":{"one_line":"An Office add-in that runs an [abap2UI5](artifact:abap2ui5-abap2ui5) app in Excel's task pane, where the app reads and writes the workbook through the `z2ui5.cc.ExcelBridge` control.","short":"Office add-in running an abap2UI5 app in Excel's task pane","what_it_solves":"An Office add-in (task pane) that shows an abap2UI5 app in Microsoft [Excel](external:microsoft-excel): a host page served by the SAP system loads Office.js first, boots UI5 with `frameOptions` allow and embeds the abap2UI5 frontend in the same window, so the app's `z2ui5.cc.ExcelBridge` control finds `window.Excel`. The app can then write a bound ABAP table into a new sheet or at a cell address and read the user's selection back; values keep their types, so leading zeros stay and `=...` never becomes a formula. The app stays an ABAP class, and the repository holds the host page as a BSP application to pull with [abapGit](artifact:abapgit-abapgit), a demo app, the manifest generator and the tests. Host page and abap2UI5 service have to share one origin, because abap2UI5 refuses a POST from another origin: that makes the page a BSP of the same system, or, where the system has none, a page served by [@sap/approuter](artifact:sap-approuter) or a reverse proxy. The bridge control is not in this repository; it lives in [abap2UI5](artifact:abap2ui5-abap2ui5) itself, merged to `main` and in no release yet, so with an older abap2UI5 the demo app's view does not load.","to_build_on_it":"The status line says proof of concept, and the gates run against a stand-in for Office.js: that a real Excel loads the add-in from the manifest, the real Office.js under the page's Content-Security-Policy, the logon in the task pane and the approuter example are all listed as not verified. Excel on the web is the open end, because the task pane is a sandboxed iframe there and the SAP session cookies become third-party cookies that Safari's ITP blocks; a sturdier logon through the Office dialog API, opening the system's logon in a top-level window, is named as a follow-up and not built. Two limits are fixed in the design: one app per manifest, and at most `maxCells` cells per write or read, 20000 by default and 100000 at most."},"links":{"repo":"https://github.com/abap2UI5-addons/office-addin"},"type_properties":{"distribution":{"value":["abapgit"],"sources":[{"url":"https://github.com/abap2ui5-addons/office-addin","title":"abap2UI5-addons/office-addin — README, Install (admins)","checked":"2026-10-17","quote":"**Pull this repository with abapGit** into a package of its own (for example `$Z2UI5_XL`, or a transportable `Z2UI5_XL`), on the system that runs abap2UI5."}]}},"identity":{"license":"MIT"},"source_available":true,"maintainers":["actor:abap2ui5-addons"],"provides":[{"capability":"capability:abap-ui-from-abap","what_it_does":"Puts the UI5 frontend of an abap2UI5 app into Excel's task pane: the add-in's own host page, served by the SAP system, loads Office.js, boots UI5 and embeds the frontend, and the app behind it remains an ABAP class in the system.","sources":[{"url":"https://github.com/abap2ui5-addons/office-addin","title":"abap2UI5-addons/office-addin — README","checked":"2026-10-17","quote":"an Office add-in that shows an [abap2UI5](https://github.com/abap2UI5/abap2UI5) app in Excel's task pane - the real abap2UI5 UI5 frontend, served by your SAP system - and lets the app read and write the workbook through the frontend's custom control `z2ui5.cc.ExcelBridge`."},{"url":"https://github.com/abap2ui5-addons/office-addin","title":"abap2UI5-addons/office-addin — README","checked":"2026-10-17","quote":"The app stays an ABAP class; the add-in is a manifest, one small host page and nothing else."}]},{"capability":"capability:data-import-export","what_it_does":"Moves table data between the ABAP app and the open workbook rather than through a file: the `z2ui5.cc.ExcelBridge` control writes a bound ABAP table into a new sheet or at a cell address with chosen columns and number formats, and `read( )` puts the user's selected cells into a bound table.","sources":[{"url":"https://github.com/abap2ui5-addons/office-addin","title":"abap2UI5-addons/office-addin — README, Apps that use Excel (developers)","checked":"2026-10-17","quote":"To talk to the workbook, put `z2ui5.cc.ExcelBridge` into the view (it renders nothing) and call its methods as frontend actions."},{"url":"https://github.com/abap2ui5-addons/office-addin","title":"abap2UI5-addons/office-addin — README, Apps that use Excel (developers)","checked":"2026-10-17","quote":"Values keep their types: strings are written as text (number format `@`, so leading zeros stay and `=...` never becomes a formula), numbers as numbers, ISO dates (an ABAP `d`) as Excel dates; a read returns numbers as numbers and date cells as ISO dates."}]}],"requires":[{"ref":"artifact:abap2ui5-abap2ui5","role":"framework","requirement":"required","basis":"binding","for":"The framework the add-in shows: it needs the abap2UI5 release that carries the `z2ui5.cc.ExcelBridge` control, and until one exists, abap2UI5 from `main`.","sources":[{"url":"https://github.com/abap2ui5-addons/office-addin","title":"abap2UI5-addons/office-addin — README, Requirements","checked":"2026-10-17","quote":"**abap2UI5 with `z2ui5.cc.ExcelBridge`** - abap2UI5 pull request #2847, on abap2UI5 `main` since commit bcce7d6."}]},{"ref":"artifact:abapgit-abapgit","role":"installation","requirement":"required","basis":"binding","for":"Getting the repository into the system: the demo app, the BSP application with the host page and the two ICF nodes come in with the pull.","sources":[{"url":"https://github.com/abap2ui5-addons/office-addin","title":"abap2UI5-addons/office-addin — README, Install (admins)","checked":"2026-10-17","quote":"**Pull this repository with abapGit** into a package of its own (for example `$Z2UI5_XL`, or a transportable `Z2UI5_XL`), on the system that runs abap2UI5."}]},{"ref":"external:microsoft-excel","role":"host-application","requirement":"required","basis":"binding","for":"The host the add-in is installed into and whose task pane shows the app; the manifest asks for the ExcelApi 1.4 requirement set, which a volume-licensed Excel 2016 does not have.","sources":[{"url":"https://github.com/abap2ui5-addons/office-addin","title":"abap2UI5-addons/office-addin — README, Requirements","checked":"2026-10-17","quote":"**Excel**: Microsoft 365, Excel 2019 or later on Windows or Mac, Excel on the web (best effort, see below)."}]},{"ref":"artifact:sap-approuter","role":"host-page-server","requirement":"conditional","condition":"The system has no BSP applications (SAP BTP, ABAP environment) and the host page is served in front of the system instead; a reverse proxy does the same job.","basis":"binding","for":"Serving the host page on the same origin as the abap2UI5 service where the system cannot carry it as a BSP. The repository ships an `xs-app.json` example for it and states it is not tested by CI.","sources":[{"url":"https://raw.githubusercontent.com/abap2UI5-addons/office-addin/main/examples/approuter/README.md","title":"abap2UI5-addons/office-addin — examples/approuter/README.md","checked":"2026-10-17","quote":"The approuter serves the host page and forwards the abap2UI5 service, so both are on its origin, which is what the add-in needs (README, \"Same origin\")."}]},{"ref":"artifact:btp-abap-environment","for":"serving the host page without a BSP on [SAP BTP ABAP environment](artifact:btp-abap-environment)","requirement":"conditional","condition":"ABAP Cloud system with no BSP applications","basis":"binding","role":"runtime-target","sources":[{"url":"https://github.com/abap2ui5-addons/office-addin","title":"office-addin README","checked":"2026-10-18","quote":"ABAP Cloud (SAP BTP, ABAP environment; S/4HANA Cloud public edition) has\nno BSP applications: pull only `src/01` there and serve the host page"}]},{"ref":"external:sap-s4hana-cloud-public-edition","for":"serving the host page without a BSP on [SAP S/4HANA Cloud Public Edition](external:sap-s4hana-cloud-public-edition)","requirement":"conditional","condition":"ABAP Cloud system with no BSP applications","basis":"binding","role":"runtime-target","sources":[{"url":"https://github.com/abap2ui5-addons/office-addin","title":"office-addin README","checked":"2026-10-18","quote":"ABAP Cloud (SAP BTP, ABAP environment; S/4HANA Cloud public edition) has\nno BSP applications: pull only `src/01` there and serve the host page"}]}],"connects":[{"ref":"artifact:abap2ui5-abap2ui5","kind":"data","direction":"outbound","protocols":["http"],"for":"The host page loads the abap2UI5 frontend from the service and the embedded app posts its roundtrips back to it, both on one origin: abap2UI5 refuses a POST from another origin.","sources":[{"url":"https://github.com/abap2ui5-addons/office-addin","title":"abap2UI5-addons/office-addin — README, How it works","checked":"2026-10-17","quote":"**The host page and the abap2UI5 service share one origin.** abap2UI5 refuses a POST from another origin (its CSRF check), and the embed control refuses to load the frontend from another origin."}]},{"ref":"external:microsoft-excel","kind":"data","direction":"outbound","for":"Reading and writing the workbook: in the task pane the frontend runs in the same window as Office.js, so the bridge control reaches Excel's own API from the app's frontend actions.","sources":[{"url":"https://github.com/abap2ui5-addons/office-addin","title":"abap2UI5-addons/office-addin — README, How it works","checked":"2026-10-17","quote":"The frontend then runs in the same window as Office.js, and `z2ui5.cc.ExcelBridge` finds `window.Excel`."},{"url":"https://github.com/abap2ui5-addons/office-addin","title":"abap2UI5-addons/office-addin — README, Apps that use Excel (developers)","checked":"2026-10-17","quote":"To talk to the workbook, put `z2ui5.cc.ExcelBridge` into the view (it renders nothing) and call its methods as frontend actions."}]},{"ref":"artifact:abap2ui5-frontend","kind":"data","for":"the embed control loads the abap2UI5 frontend bundle from the system at runtime","direction":"outbound","sources":[{"url":"https://raw.githubusercontent.com/abap2UI5-addons/office-addin/main/AGENTS.md","title":"office-addin: AGENTS.md","checked":"2026-10-18","quote":"The embed control loads it from the system (`<endpoint>?z2ui5-bundle`); nothing here pins or vendors it."}]}],"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-10-17"},"drafted_with_ai":true,"contributors":["actor:oblomov-dev"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"3 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-10, not archived"}],"compatibility":[{"label":"Declared for","tier":"good","evidence":"SAP_BASIS 750 and up, in its abaplint config: includes every maintained line to 816"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"good","evidence":"test-e2e green, 2026-10-12"}],"practice":[{"label":"Tests","tier":"good","evidence":"7 test files"},{"label":"Docs","tier":"good","evidence":"README 23 KB"},{"label":"Changelog","tier":"good","evidence":"CHANGELOG in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":0,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-24","npm":"not published under this name","stars":0,"forks":0,"open_issues":0,"archived":false,"pushed_at":"2026-10-12","license_spdx":"MIT","org_owned":true,"default_branch":"main","created_at":"2026-10-04T01:58:29Z","open_prs":0,"tree_truncated":false,"test_files":7,"workflows":3,"other_ci":false,"readme_bytes":23877,"docs_files":0,"changelog":true,"license_file":true,"dts_files":0,"first_commit":"2026-10-04","last_commit":"2026-10-12","commits":9,"contributors":3,"ci_status":"success","ci_run_at":"2026-10-12","ci_workflow":"test-e2e","ci_event":"push","readme_path":"README.md","readme_sha":"fefe95309dc90c28599a13f8d7585f35091f3b0d","repo_read":"2026-10-24","abap_syntax":{"repo":"abap2UI5-addons/office-addin","file":"abaplint.jsonc","url":"https://github.com/abap2UI5-addons/office-addin/blob/HEAD/abaplint.jsonc","version":"v750","floor":"750","checked":"2026-10-26"}},"edges":{"maintainers":[{"ref":"actor:abap2ui5-addons","name":"abap2UI5-addons","json":"/actors/abap2ui5-addons.json"}],"contributors":[{"ref":"actor:oblomov-dev","name":"oblomov-dev","json":"/actors/oblomov-dev.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_on_to":{"ref":"artifact:abap2ui5-abap2ui5","name":"abap2UI5","json":"/artifacts/abap2ui5-abap2ui5.json"},"add_ons":[],"answered_through_parts":[]}}