docparser-office 0.1.0

docparser Office 后端:DOCX / XLSX / PPTX 解析(zip + quick-xml 流式)
Documentation

docparser-office

DOCX / XLSX / PPTX 后端:zip + quick-xml 流式解析(无全局锁、无 libexpat), 解析路径为单线程流式,不引入 rayon。

安装

cargo add docparser-office                                        # 三格式全要

cargo add docparser-office --no-default-features --features docx  # 只要 Word

# 或 cargo add docparser-sdk --no-default-features --features docx

特性

feature 默认 作用
docx ✅ Word:正文段落、w:tbl 表格、文本框(w:txbxContent)、w:tab/w:br
xlsx ✅ Excel:多 sheet 分页、共享字符串、numFmt 数字/日期、逐单元格
pptx ✅ PowerPoint:多 slide 分页、文本框/表格/组合形状递归/图表框

被裁掉的格式不注册,解析该扩展名返回 unsupported。三种格式共用同一套 zip + quick-xml,所以依赖树相同(26 个),差别在编译进来的代码量:只开 docx 时 rlib 487 KB,三格式全开 938 KB。docparser_office::FORMATS 反映实际编译进来的格式。

用法

use docparser_core::{DocumentEngine, Registry};

let mut reg = Registry::new();
docparser_core::plugins::text::register_defaults(&mut reg);
docparser_office::register_defaults(&mut reg);

let doc = DocumentEngine::new(reg).parse("spec.xlsx")?;
println!("{}", docparser_core::emit::to_markdown(&doc));

覆盖范围

当前是 raw 文本模式:以段落为单位输出 BlockKind::Paragraph,不还原标题层级与列表结构。

格式 提取内容
.docx 正文段落、w:tbl 表格单元格文本、文本框(w:txbxContent)、w:tab/w:br
.xlsx 多 sheet(每 sheet 一页)、共享字符串、numFmt 数字/日期格式化、逐单元格文本
.pptx 多 slide(每 slide 一页)、文本框、表格单元格、组合形状递归、图表框文本

legacy .doc/.xls/.ppt(OLE)不解析:router 会识别为 ole,没有对应插件时返回 unsupported。加密件(OLE 容器包 OOXML)在嗅探阶段即判定为 encrypted。

许可

MIT OR Apache-2.0