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 解析器实现
每月139次下载
在 office-crypto 中使用
105KB
3K SLoC
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