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 результат пишется в указанный файл.
Смотрите также
- Rust-крейт — тот же движок как библиотека
- MCP-сервер — дайте AI-ассистентам ту же тулину
- Бенчмарки производительности