Skip to content

Referencia de la API

Referencia consolidada de la superficie de Office Oxide, organizada por concepto en lugar de por binding. Cada binding refleja la misma forma — los nombres siguen las convenciones del lenguaje (snake_case en Rust/Python, camelCase en JS, PascalCase en C#/.NET, Pascal en Go).

Document — handle de lectura

Abrir desde un path; el formato se detecta por extensión y magic bytes.

Concepto Rust Python JavaScript Go C# C
Abrir archivo Document::open(path) Document.open(path) Document.open(path) officeoxide.Open(path) Document.Open(path) office_document_open
Abrir desde bytes Document::from_reader(r, fmt) Document.from_bytes(b, fmt) Document.fromBytes(b, fmt) OpenFromBytes(b, fmt) Document.FromBytes(b, fmt) office_document_open_from_bytes
Formato .format() .format .format .Format() .Format office_document_format
Texto plano .plain_text() .plain_text() .plainText() .PlainText() .PlainText() office_document_plain_text
Markdown .to_markdown() .to_markdown() .toMarkdown() .ToMarkdown() .ToMarkdown() office_document_to_markdown
HTML .to_html() .to_html() .toHtml() .ToHTML() .ToHtml() office_document_to_html
IR .to_ir() (tipado) .to_ir() (dict) .toIr() (object) .ToIRJSON() .ToIrJson() office_document_to_ir_json
Guardar / convertir .save_as(path) .save_as(path) .saveAs(path) .SaveAs(path) .SaveAs(path) office_document_save_as
Cerrar drop salir del with close() / using .Close() Dispose / using office_document_free

DocumentFormat

Docx | Xlsx | Pptx | Doc | Xls | Ppt

Las cadenas de formato usadas en las fronteras FFI (from_bytes, etc.) son las versiones en minúsculas: "docx", "xlsx", "pptx", "doc", "xls", "ppt".

EditableDocument — read-modify-write

Misma API de apertura que Document. Al guardar conserva todas las partes OPC sin modificar.

Concepto Rust Python JavaScript Go C# C
Abrir EditableDocument::open EditableDocument.open EditableDocument.open OpenEditable EditableDocument.Open office_editable_open
Reemplazar texto .replace_text(n, r) .replace_text(n, r) .replaceText(n, r) .ReplaceText(n, r) .ReplaceText(n, r) office_editable_replace_text
Establecer celda XLSX .set_cell(idx, ref, v) .set_cell(idx, ref, v) .setCell(idx, ref, v) .SetCell(idx, ref, v) .SetCell(idx, ref, v) office_editable_set_cell
Guardar .save(path) .save(path) .save(path) .Save(path) .Save(path) office_editable_save
Guardar bytes .write_to(w) .save_to_bytes() .saveToBytes() .SaveToBytes() .SaveToBytes() office_editable_save_to_bytes

Los handles editables soportan solo DOCX, XLSX, PPTX. Llamar a replace_text en XLSX devuelve 0; usa set_cell. Llamar a set_cell en DOCX/PPTX da error.

Helpers a nivel de módulo

Helper Devuelve Disponible en
extract_text(path) string UTF-8 Todos los bindings
to_markdown(path) string Markdown GFM Todos los bindings
to_html(path) string con fragmento HTML Todos los bindings
detect_format(path) nombre del formato o null Todos los bindings
version() "0.1.0" Todos los bindings
create_from_ir(ir, fmt, path) unit / void Rust, Python

DocumentIR — esquema

DocumentIR {
    sections: [Section]
}

Section {
    title:    Option<string>
    elements: [Element]
}

Element = Heading   { level, text }
        | Paragraph { runs: [Run] }
        | List      { ordered, items: [string] }
        | Table     { rows: [[string]] }
        | Image     { filename, data: bytes }

Run {
    text, bold, italic, underline, hyperlink: Option<string>
}

En Python, Element se despacha mediante el campo kind ("Heading", "Paragraph", "List", "Table", "Image").

Errores

Los errores exponen un código tipado y el nombre de la operación que falló.

Código Significado
0 OK
1 Argumento inválido (puntero nil, cadena de formato desconocida)
2 Error de I/O
3 Error de parseo (documento corrupto)
4 Falló la extracción (parseo OK, pero falló el render)
5 Error interno (bug — abre una issue)
6 No soportado (extensión o feature)
Binding Tipo
Rust office_oxide::OfficeError (enum)
Python OfficeOxideError (excepción, .code, .operation)
JavaScript OfficeOxideError (subclase de Error, .code, .operation)
Go *officeoxide.Error (.Code, .Op)
C# OfficeOxideException (.Code, .Operation)
C int *error_code out-parameter

Feature flags (crate Rust)

[dependencies]
office_oxide = { version = "0.1.0", features = ["mmap", "parallel"] }
Feature Efecto
mmap Document::open_mmap para apertura zero-copy de OOXML
parallel helpers de parseo paralelo basados en rayon
serde (default) Serialize / Deserialize en los tipos del IR
python bindings PyO3 (usados al construir la wheel office-oxide en PyPI)

Submódulos por formato (Rust)

office_oxide::docx   — DocxDocument, DocxBuilder, edit::DocxEditor
office_oxide::xlsx   — XlsxDocument, XlsxBuilder, edit::{XlsxEditor, CellValue}
office_oxide::pptx   — PptxDocument, PptxBuilder, edit::PptxEditor
office_oxide::doc    — DocDocument
office_oxide::xls    — XlsDocument
office_oxide::ppt    — PptDocument
office_oxide::ir     — DocumentIR, Section, Element, Run
office_oxide::edit   — EditableDocument
office_oxide::create — create_from_ir

Usa los submódulos cuando necesites acceso específico de formato — iteración de hojas, manipulación de diapositivas, custom XML — más allá de lo que el Document unificado expone.

Véase también