threepp
A cross-platform C++20 3D library with Python bindings and the high-level API of three.js.
Browser engine to view DOCX, XLSX, PPTX progressively (worker-based, range-loading, virtualized React views)
Translation pending
Developer toolsTypeScript · CSSGitHub @p10nodeOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
View & edit DOCX, XLSX, PPTX in the browser. Progressive loading, formulas, real-time collab, saves to original format.
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗View + edit DOCX / XLSX / PPTX directly in the browser. Loads progressively like Google Docs, handles heavy files, one-line React embed, saves back to the original format.
The demo has samples, heavy files (300k-row sheet, 305-slide deck), drag & drop your own file, edit and download.
Real-time collaboration
300k-row XLSX open in the browser
| DOCX editor | PPTX editor |
|---|---|
bun add @p10node/office-engine # peer: react >= 18, react-dom >= 18
import { DocViewer } from '@p10node/office-engine'
<DocViewer src={file} style={{ height: 600 }} /> // File | Blob | ArrayBuffer | Uint8Array
<DocViewer src="https://cdn.example.com/report.xlsx" /> // URL → Range requests
<DocViewer src={file} editable onSave={(blob, name) => upload(blob, name)} />
CSS is auto-injected. Container must have a height.
Without React:
<script src="office-engine.embed.js"></script> <!-- dist/, bundles React + worker -->
<office-viewer src="/files/report.docx" style="height:600px"></office-viewer>
Also online at p10node.github.io/office-engine.
mount(), <office-viewer>, core API, CSPmount(), <office-viewer> web component, single <script> fileFull list, format coverage and limitations: Features.
| File | Size | First paint | Fully loaded |
|---|---|---|---|
| DOCX 20k paragraphs | 1.2 MB | ~180 ms | 2073 pages in ~2s |
| XLSX 300k rows × 12 cols | 24.8 MB | ~330 ms | ~2s |
| PPTX 305 slides | 0.3 MB | ~110 ms | on-demand |
Measured in headless Chromium on Apple M-series.
MIT © p10node