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
| Editors | SumSheet for .xlsx / .xlsm / .xlsb, SumDoc for .docx — the same engines as the desktop apps, running on your server, one process per open document. |
|---|---|
| Inside Nextcloud | Through 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. |
| Measured | A 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 counted | People, 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
for f in docker-compose.yml nginx.conf start-sumsheet.sh discovery.py env.example; do curl -sO https://sumoffice.com/files/nextcloud/$f; done
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
.xlsxor.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.
- Order a change under your process — your SSO, your storage rules, your customized Nextcloud: from 150 €, price and date before we start.
- Tell us what kind of organization embeds it — the production license is per embedding application, no meters on your users.