Download
=OPEN(your_workbook.xlsm, your_host)
Replacing Office Online Server?

If your system speaks WOPI, it already knows how to talk to us.

WOPI is the protocol Microsoft built for Office Online Server, and it is the protocol Collabora answers. SumOffice answers it too — so for a dozen products the editor is one setting, not an integration project. This page lists that setting per product, says exactly what was measured on each one, and collects the four traps that catch everyone on the first evening.

Why now: Microsoft ends support for Office Online Server on 1 January 2027. Every on-premises SharePoint, and every system that was pointed at OOS, needs another editor before then — and the workbooks those organizations run have macros in them.

The setting, per product

All of them take the same thing from us: the address of our discovery document, https://office.example.com/hosting/discovery.

NextcloudThe Nextcloud Office app: wopi_url and public_wopi_url. Three steps and the address rule →
ownCloud Infinite Scale, OpenCloudThe collaboration service: COLLABORATION_APP_ADDR. Setup and the six traps →
ownCloud 10The richdocuments app from their marketplace — the same two settings as Nextcloud.
Seafileseahub_settings.py: ENABLE_OFFICE_WEB_APP, OFFICE_WEB_APP_BASE_URL, and the file-extension lists. Measured setup →
FileCloud ServerSettings → Web Edit: choose Collabora Code, the external HTTPS zone and the SumOffice host name. Four-step setup →
SharePoint Server SE / 2019 / 2016New-SPWOPIBinding -ServerName office.example.com, over https, with proof keys and a WOPI zone. This is the direct replacement path for Office Online Server. The bindings and the zone →
MoodleThe mod_collabora plugin: its Collabora URL field. Inside a course activity →
FilestashThe core plugin plg_editor_wopi, which takes /hosting/discovery. Setup, and the formats it routes →
Group-OfficeThe community wopi module: a service with an arbitrary URL. The address rule and the folder right →
EGroupwareThe collabora application (src/Wopi), shipped in the distribution. Setup and the silent fallback →
Alfresco, Pydio Cells, OpenKM, NuxeoAll carry a WOPI client of their own (Alfresco through collabora.public.url). We have not run these; say the word and they go to the front of the queue.

What we measured

Every line below is a completed round on a real installation of that product: a macro workbook and a document with five pictures were uploaded, opened with the product's own button, edited, saved — and the file taken back out was compared byte for byte. Signature verification was on.

Nextcloud 31.0.14Round complete. VBA byte for byte, all five pictures byte for byte, a new file version in Nextcloud. Separately, on 26 September, a workbook edited in the Nextcloud frame came back into the file and Microsoft Excel opened it without a repair dialog.
ownCloud Infinite Scale 8.2Round complete with signature verification on; four types handed to provider SumOffice. Repeated on a real macro workbook: 22 parts of 22, vbaProject.bin byte for byte, the Power Query binding kept — and Microsoft Excel opened the file that came out of oCIS without a single dialog. Setup and traps →
OpenCloud 8.0.1Round complete, and the refusal path checked from the other side: the same request with a missing or corrupted signature is rejected with 500. Zero refusals on our own requests.
ownCloud Classic 10.15Round complete through the richdocuments app, on a real macro workbook: VBA byte for byte and Excel opened the result silently. This host also handed us a difference — it reports the write right as a number rather than a true/false — which our editors now handle.
Seafile Pro 12.0.25Round complete for .xlsx and .docx, with a new revision in Seafile's history. Limitation, and it is Seafile's side: its web editor does not open .xlsm or .xlsb — that list is fixed in the product. Measured setup →
Moodle 5.2 (mod_collabora)Round complete inside a course activity, on a real macro workbook: the edit came back as a new version, VBA byte for byte, Excel silent. The editor is picked by file type.
Filestash 0.6Round complete for .xlsx and .docx from the interface — Excel and Word both silent on the returned files. Limitation, and it is Filestash’s side: its own type table has no entry for .xlsm, .xlsb or .docm, so a macro file is handed to its text viewer rather than the office window. Filestash also has no file locking, so the editor works without it. Setup and the formats it routes →
Group-Office 26.0.48Round complete through the community wopi module — configuration only, no code — on a real macro workbook: the workbook appeared in 4.6 s, the save came back as version 2, VBA and the Power Query binding intact, Excel silent. This host also handed us a difference: it posts the open request as multipart/form-data, which an editor expecting a plain form answers with an error and a blank frame. Setup and the two things that stop you →
EGroupwareRound complete through its Collabora application, on a real macro workbook: VBA byte for byte, Excel silent. Worth knowing: it caches a failed discovery for an hour and then quietly falls back to its own managed server — see the traps.
SharePoint Server Subscription Edition 16.0.14326Round complete with eight WOPI bindings (Word DOCX, Excel XLSX/XLSM/XLSB, view and edit). The save landed: PutFile 200, WOPI PutFile Success in the ULS log, new versions in the library. SharePoint verified 13 signatures with zero refusals. This is the seat Office Online Server is leaving.

Which workbook, and why we say it. Seven of the rounds above — Nextcloud, Infinite Scale, ownCloud 10, Moodle, EGroupware, Group-Office and Filestash — were run on a real workbook (a macro workbook everywhere it is routed; through Filestash, which does not route macro files at all, the same workbook without its macro project) with VBA and a Power Query binding, and we opened every returned file in Microsoft Excel ourselves. Those are the ones that carry the words «Excel silent». The remaining rounds used a small fixture workbook from our test corpus, and we checked that fixture on its own: it asks Excel to repair it before any round touches it. So those rounds prove that the file travels through the host and comes back with its VBA and pictures identical — and nothing about a silent Excel. We are repeating them on the real workbook, host by host, and the words will change here when they do.

Where we wrote the connector ourselves

These products have no office-editor slot to fill, so the connector is ours. Each one carries a WOPI host inside the product: signed tokens, signature checks, CheckFileInfo, GetFile, PutFile, locks.

Odoo 18Module sumoffice_wopi — an Open in SumOffice button on chatter attachments. Round complete on .xlsm and .docx, every call 200 with signature verification on. Install and use →
EspoCRM 10.0.10, 9.2.4Extension with a button on Document files: Word, Excel and PowerPoint, saved back into the same record. Settings page in Administration. Round complete. Install and use →
SuiteCRM 8.9.1Module Loader package. Round complete. Install and use →
Frappe / ERPNext 15.97App sumoffice. Round complete. Install and use →
Redmine 6Plugin. Round complete. Install and use →
Rocket.Chat 7.10Apps-Engine app with a bridge. Round complete. Install and use →
Jira Cloud & Confluence CloudOur own Forge app with a service of ours. Round complete on both. What was measured →

Two more — ILIAS 11.4 and Mattermost 10.11 ESR — complete their rounds on our stand with editor fixes that have not shipped in the published images yet. They will appear here when those images are out, and not before.

Already on an ONLYOFFICE connector?

Nextcloud, ownCloud, Seafile, WordPress, Moodle and Odoo with the ONLYOFFICE connector you already have: change the server address and the secret key, and .xlsm keeps its macros. Where to type it, and what we measured →

ONLYOFFICE is a trademark of Ascensio System SIA; SumOffice is not affiliated with it.

The four traps

Different products, the same four evenings lost. Written down so you lose none of them.

Proof keysStrict hosts — Infinite Scale and SharePoint among them — verify the signature on every request. Two editors behind one discovery must sign with one key. Ours do; with verification on, refusals were zero. If a host suddenly answers 502 in the frame, this is the first thing to check.
Actions keyed by extensionSome hosts match actions by file extension, not by MIME name. An action declared without ext= is simply invisible — xlsm does not appear in the list at all, and nobody tells you why.
https, or one originThe editor runs in a frame from another address, so its session cookie is a cross-site cookie — browsers accept those only over https. On plain http the editor accepts the token and then asks the user to sign in. Either put the editors behind TLS, or serve the host and the editors from one origin.
Cached discoveryEvery host caches our discovery document, and several cache it in two places at once — on disk and in memory. After you change the address, overwrite the cached copy and restart the host process; deleting the cache file makes Nextcloud, for one, answer 500.

What travels with the file

  • .xlsx / .xlsm / .xlsb and .docx are edited and saved back natively — the VBA project, the defined names, the queries and the pictures come back as they went in.
  • Nothing leaves your servers: the editors run in your own Docker, the host stays the WOPI host, and we never see the files.
  • Presentations: not in this server yet. SumSlide, the presentations editor, ships as desktop apps for macOS, Windows and Linux.

Before you move a department, run its workbooks through Check my Excel file: it names every macro, every function and every data source the engine knows or does not know, in seconds, without running anything.

Then

SumOffice assistant

Answers are assembled from the documentation and may be inaccurate — check the sources.