#解析器 #生成器 #openxml

docx

用于解析和生成docx文件的Rust库

11个版本 (4个稳定版本)

1.1.2 2020年4月27日
1.1.1 2020年4月7日
1.1.0 2020年3月25日
0.2.1 2019年11月8日
0.1.0 2018年8月17日

#1875 in 解析器实现

Download history 39/week @ 2024-03-11 36/week @ 2024-03-18 23/week @ 2024-03-25 40/week @ 2024-04-01 21/week @ 2024-04-08 31/week @ 2024-04-15 33/week @ 2024-04-22 25/week @ 2024-04-29 23/week @ 2024-05-06 34/week @ 2024-05-13 31/week @ 2024-05-20 22/week @ 2024-05-27 31/week @ 2024-06-03 25/week @ 2024-06-10 50/week @ 2024-06-17 31/week @ 2024-06-24

每月139次下载
office-crypto 中使用

MIT 许可

105KB
3K SLoC

GitHub Workflow Status Crates.io Document

docx

用于解析和生成docx文件的Rust库。

文档

许可

MIT


lib.rs:

用于解析和生成docx文件的Rust库。

创建新文档

使用 Docx::default 创建一个新的空 Docx,然后使用 Docx::write_file 将其保存到文件。

use docx::document::Paragraph;
use docx::Docx;

let mut docx = Docx::default();

// create a new paragraph and insert it
let para = Paragraph::default().push_text("Lorem Ipsum");
docx.document.push(para);

docx.write_file("demo.docx").unwrap();

另请参阅: Docx::write.

从文件读取

使用 DocxFile::from_file 从docx文件中提取内容,然后使用 DocxFile::parse 生成一个 Docx 结构体。

use docx::document::Paragraph;
use docx::DocxFile;

let docx = DocxFile::from_file("origin.docx").unwrap();
let mut docx = docx.parse().unwrap();

let para = Paragraph::default().push_text("Lorem Ipsum");
docx.document.push(para);

docx.write_file("origin_appended.docx").unwrap();

为了减少分配,DocxFile::parse 返回一个包含对 DocxFile 的引用的 Docx 结构体。这意味着您必须确保 DocxFile 存活的时间与返回的 Docx 一样长

use docx::DocxFile;

let mut docx_option = None;
{
    let docx_file = DocxFile::from_file("foo.docx").unwrap();
    let mut docx = docx_file.parse().unwrap();
    docx_option = Some(docx);
    // `docx_file` gets dropped here and code fails to compile
}
docx_option.unwrap().write_file("foo.docx").unwrap();

另请参阅: DocxFile::from_reader.

类似项目

bokuweb/docx-rs: 使用Rust/WebAssembly编写的.docx文件写入器。

许可

MIT

依赖关系

~2.5–4MB
~64K SLoC