Download
=OPEN(your_workbook.xlsm, Seafile)
Already running Seafile?

Macro workbooks open and save inside Seafile.

Seafile speaks WOPI — the same protocol it uses for Office Online Server. SumOffice answers that protocol, so the editor is a setting on the Seafile side, not a patch to it. Below is the setup we ran on 22 September 2026 and the numbers we measured on the way.

What was measured

StandSeafile 12.0.14 (Community), MariaDB, memcached; SumSheet and SumDoc behind one address. The WOPI app ships inside the open-source seahub, so the same setting path applies to Professional installations.
OpeningA macro workbook (110 KB, 65 parts, 83 formulas, a VBA project) opened from a Seafile library into SumSheet in 7.9 s on a laptop; a .docx into SumDoc in 1.9 s.
Saving backWrite-back through WOPI PutFile created a new revision in Seafile, and Seafile returned exactly the bytes the engine wrote — same SHA-256.
What came backThe workbook: 65 parts of 65, vbaProject.bin byte for byte, 83 formulas of 83, 9 defined names of 9. Microsoft Excel opened the file taken out of Seafile without a repair dialog. The document: 16 parts of 16, all five pictures identical.
Not countedPeople, libraries, documents. Evaluation is free with no time limit; production is the per-application license.

Step 1 — start the editors

Same compose as for any WOPI host: two editors behind one address, a small service that merges their discovery into one document.

mkdir sumoffice-seafile && cd sumoffice-seafile
git clone https://github.com/SumOfficeApp/sumoffice-docker && cd sumoffice-docker/nextcloud   # the same compose serves Seafile
cp env.example .env    # PUBLIC_URL=https://office.example.com  — the address your people reach the editor at
docker compose up -d
curl -s $PUBLIC_URL/hosting/discovery | head -c 300   # the WOPI discovery Seafile will read

Step 2 — point Seafile at them

In seahub_settings.py:

ENABLE_OFFICE_WEB_APP = True
OFFICE_WEB_APP_BASE_URL = 'https://office.example.com/hosting/discovery'
OFFICE_WEB_APP_FILE_EXTENSION = ('xls', 'xlsx', 'xlsm', 'xlsb', 'ods', 'doc', 'docx', 'docm')
ENABLE_OFFICE_WEB_APP_EDIT = True
OFFICE_WEB_APP_EDIT_FILE_EXTENSION = ('xlsx', 'xlsm', 'xlsb', 'docx')

The last line is what makes the editor open a file for editing rather than viewing, so list every extension your people edit.

Step 3 — open a workbook

  • Click any .xlsx or .xlsm in a library. The editor opens in the Seafile window; the first document takes a few seconds while its process starts.
  • Edit and save: the file goes back through WOPI and Seafile keeps the previous revision in the file history.
  • Download it and open it in Excel: the VBA project and the formulas are the ones you put there.

Two deployment notes. The editor runs in a frame on a different host than Seafile, so put both behind HTTPS — on plain http a browser drops the editor's session cookie unless both sides share one site. And Seafile caches the discovery document: after you change the editor address, restart memcached.

Scope today

  • .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; supported VBA runs in SumSheet without Excel, and what is not supported is named before the file changes rather than dropped.
  • One editor per document at a time: a second person opens it read-only.
  • Presentations: SumPoint, December 2026.
  • Macro workbooks (.xlsm, .xlsb) need one more setup step on the Seafile side than .xlsx does. We are going through it with the Seafile team; ask us and we will send the current note.

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.