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