Download
=OPEN(your_workbook.xlsm, Nextcloud)
Leaving Microsoft?

Your Excel keeps working inside Nextcloud.

Three steps, about twenty minutes if you already run Nextcloud in Docker. A workbook with macros opens from Files in the browser, is edited, saved back — and opens in Excel afterwards with its VBA project byte for byte; a Word document does the same and opens in Word with every picture in place. Everything below was measured on a real corpus; the last section says what is in scope today.

What you get

EditorsSumSheet for .xlsx / .xlsm / .xlsb, SumDoc for .docx — the same engines as the desktop apps, running on your server, one process per open document.
Inside NextcloudThrough the standard Nextcloud Office app (richdocuments): SumOffice presents itself the way Collabora does, so nothing in Nextcloud is patched. Click a file → editor. Save → a new file version in Nextcloud.
MeasuredA macro workbook from the public Enron corpus (2 sheets, 861 cells, 197 formulas, VBA): 4.3 s from the click in Files to a ready sheet on a laptop, recalculation on open 126 ms, save back < 1 s. The saved file: 14 parts of 14, vbaProject.bin identical, 197 formulas of 197, defined names kept, the values your VBA functions had computed kept — and Excel opens it without a word. A DOCX with five pictures (jpeg, png, wmf, emf, pict): edited in SumDoc, saved back, 16 parts of 16, media identical, Word opens it clean.
Not countedPeople, documents, clicks. Evaluation is free with no time limit; production inside an organization is the per-application license. Your customized Nextcloud, SSO, storage rules — a change under your process, price and date before we start.

Step 1 — start the editors

Download the four files, put them in one folder, fill in .env with the address you give the editors (PUBLIC_URL, behind your TLS reverse proxy) and the address your people open Nextcloud at.

mkdir sumoffice-nextcloud && cd sumoffice-nextcloud
git clone https://github.com/SumOfficeApp/sumoffice-docker && cd sumoffice-docker/nextcloud   # or curl the five files from /files/nextcloud/
cp env.example .env    # PUBLIC_URL=https://office.example.com  NEXTCLOUD_URL=https://cloud.example.com
docker compose up -d
curl -s $PUBLIC_URL/hosting/discovery | head -c 300   # the WOPI discovery Nextcloud will read

Why one address with /f1 and /a4: Nextcloud's content-security policy allows exactly one origin for the editor frame. The small discovery.py merges the two editors' discovery into one — temporary glue until the images publish it themselves. Images: hissih/sumsheet-webhost, hissih/sumdoc-webhost.

Step 2 — point Nextcloud at them

On the Nextcloud host (or docker exec -u www-data nextcloud php occ …):

php occ app:install richdocuments
php occ config:app:set richdocuments wopi_url        --value https://office.example.com
php occ config:app:set richdocuments public_wopi_url --value https://office.example.com
php occ richdocuments:activate-config

The last command must print no error: it fetched our discovery and capabilities. If you change the address later, Nextcloud caches the old discovery — delete data/appdata_*/richdocuments/remoteData/discovery and restart PHP.

Step 3 — open a workbook

  • In Files, click any .xlsx or .xlsm. The editor opens in the Nextcloud window; the first document takes a few seconds while its process starts, the next ones are faster.
  • Edit, press Ctrl+S (or just close): the file goes back through WOPI, Nextcloud keeps the previous version in its history.
  • Download the file and open it in Excel: the VBA project and the formulas are the ones you put there.

Scope today

  • Spreadsheets and documents: .xlsx / .xlsm / .xlsb and .docx are edited and saved back natively; .ods / .odt open by import and save as .xlsx / .docx.
  • Macros and Power Query travel with the file untouched; the queries refresh in the desktop SumSheet, inside Nextcloud they are preserved.
  • One editor per document at a time: a second person opens it read-only. Simultaneous editing follows the SumDoc line.
  • Presentations: SumPoint, December 2026.

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.