Office-Dokumente nach HTML konvertieren
Jedes Handle in Office Oxide hat eine to_html()-Methode, die sauberes, semantisches HTML5 aus jedem unterstützten Format liefert. Praktisch für Browser-Preview, Email-Rendering oder schnelle visuelle Diffs.
Einzelaufruf
Python
import office_oxide
html = office_oxide.to_html("report.docx")
open("report.html", "w").write(html)
Rust
use office_oxide::to_html;
let html = to_html("report.docx")?;
std::fs::write("report.html", html)?;
JavaScript
import { toHtml } from 'office-oxide';
import { writeFileSync } from 'node:fs';
writeFileSync('report.html', toHtml('report.docx'));
Go
html, err := officeoxide.ToHTML("report.docx")
os.WriteFile("report.html", []byte(html), 0o644)
C#
File.WriteAllText("report.html", OfficeOxide.ToHtml("report.docx"));
Wiederverwendbares Handle
Python
from office_oxide import Document
with Document.open("slides.pptx") as doc:
html = doc.to_html()
JavaScript
using doc = Document.open('slides.pptx');
const html = doc.toHtml();
Rust
let doc = office_oxide::Document::open("slides.pptx")?;
let html = doc.to_html();
Was rauskommt
Das HTML kommt als Fragment — keine Hüllen <html>, <head> oder <body>. Wo du es einhängst und welches Stylesheet du verwendest, entscheidest du.
| Quelle | HTML-Element |
|---|---|
| Überschrift | <h1> … <h6> passend zum Quelllevel |
| Absatz | <p> |
| Fett / kursiv / unterstrichen | <strong>, <em>, <u> |
| Liste | <ul> / <ol> mit <li>-Kindern |
| Tabelle | <table> mit <thead>, <tbody>, <tr>, <th>, <td> |
| Hyperlink | <a href="..."> |
| Bild | <img src="..." alt="..."> |
| XLSX-Sheet | <section data-sheet="name"> + <table> |
| PPTX-Folie | <section data-slide="N"> + Body + optionales <aside> für Notizen |
Die Ausgabe ist escaped: Benutzerinhalt im Dokument wird HTML-escaped, das Einbetten in eine Seite ist also standardmäßig sicher.
Als eigenständige Seite einpacken
from office_oxide import Document
with Document.open("report.docx") as doc:
body = doc.to_html()
page = f"""<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>Bericht</title>
<link rel="stylesheet" href="docs.css">
</head><body>{body}</body></html>"""
open("report.html", "w").write(page)
Use Cases
- Browser-Preview für hochgeladene Dokumente (
<input type="file">→ WASM →<iframe srcdoc>). - Email-Rendering generierter Reports.
- Diff-Ansichten — HTML-Diffs werden in Code-Review-Tools sinnvoll dargestellt.
- Suchindexierung mit erhaltener Struktur (Überschriften können Ergebnisse boosten).
Siehe auch
- Markdown-Extraktion — wenn textfreundlicher Output gewünscht ist
- IR-Extraktion — strukturiertes JSON, wenn du selber rendern willst
- WASM-Schnellstart — für Konvertierung im Browser