Skip to content

Office Oxide CLI — быстрый старт

office-oxide — это командная утилита для быстрой локальной обработки Office-документов. Она поставляется с тем же Rust-ядром, что и библиотека — никакого облака, никаких зависимостей.

Установка

Cargo (любая платформа):

cargo install office_oxide_cli

cargo-binstall (готовая бинарка):

cargo binstall office_oxide_cli

Из исходников:

git clone https://github.com/yfedoseev/office_oxide
cd office_oxide
cargo install --path crates/office_oxide_cli

Установленная бинарка называется office-oxide.

Быстрый старт

# Извлечь обычный текст
office-oxide text report.docx

# Сконвертировать в Markdown
office-oxide markdown data.xlsx -o data.md

# Сконвертировать в HTML
office-oxide html slides.pptx -o slides.html

# Выгрузить формат-независимый IR как JSON
office-oxide ir document.docx -o document.ir.json

# Сконвертировать legacy DOC → современный DOCX
office-oxide convert old.doc modern.docx

Полный список флагов — office-oxide --help, по конкретной команде — office-oxide <command> --help.

Команды

Команда Описание
text Извлечь UTF-8 текст
markdown Сконвертировать в GitHub-flavored Markdown
html Сконвертировать в семантический HTML
ir Выгрузить формат-независимый IR как JSON
convert Конвертация между форматами (legacy → OOXML, OOXML → OOXML)
info Показать формат, число страниц/листов/слайдов и метаданные

Все команды принимают любой из шести поддерживаемых форматов: .docx, .xlsx, .pptx, .doc, .xls, .ppt.

Глобальные опции

-o, --output <PATH>   Выходной файл (по умолчанию stdout для текстовых выводов)
-v, --verbose         Показывать тайминги
-q, --quiet           Скрыть несущественный вывод
    --json            Обернуть вывод в JSON-конверт

Примеры

Извлечь текст из таблицы:

office-oxide text quarterly.xlsx

Параллельно мигрировать legacy .doc корпус:

find legacy/ -iname '*.doc' | \
  parallel 'office-oxide convert {} modern/{/.}.docx'

Сконвертировать презентацию для LLM-пайплайна:

office-oxide markdown deck.pptx -o deck.md

Проинспектировать файл:

office-oxide info mystery.bin
# format: xlsx, sheets: 4, named_ranges: 12, ...

Прокинуть через jq:

office-oxide ir report.docx | jq '.sections[].title'

stdin / stdout

text, markdown, html и ir по умолчанию пишут в stdout — удобно для пайплайнов:

office-oxide text report.docx | grep -i "executive summary"

С --output результат пишется в указанный файл.

Смотрите также