3个版本
0.1.2 | 2024年1月2日 |
---|---|
0.1.1 | 2024年1月2日 |
0.1.0 | 2022年11月28日 |
#640 in 编码
48KB
1K SLoC
simple_xlsx_writer
这是一个非常简单的XLSX编写器库。
这个库功能不丰富,也不打算丰富。许多设计都是基于 simple_excel_writer 的作品,我建议你检查一下这个crate。
这个crate的主要思想是帮助你使用很少的RAM来构建XLSX文件。我创建它是为了在我的Web Assembly网站上使用 csv2xlsx。
基本上,你只需要将实现了 Write 和 Seek 的输出传递给 WorkBook。当你编写文件时,它将直接压缩并写入输出。因此,你可以使用非常少的RAM直接将数据流式传输到文件。或者甚至写入内存,仍然不会使用太多内存,因为文件已经是压缩的。
示例
use simple_xlsx_writer::{row, Row, WorkBook};
use std::fs::File;
use std::io::Write;
fn main() -> std::io::Result<()> {
let mut files = File::create("example.xlsx")?;
let mut workbook = WorkBook::new(&mut files)?;
let header_style = workbook.create_cell_style((255, 255, 255), (0, 0, 0));
workbook.get_new_sheet().write_sheet(|sheet_writer| {
sheet_writer.write_row(row![("My", &header_style), ("Sample", &header_style), ("Header", &header_style)])?;
sheet_writer.write_row(row![1, 2, 3])?;
Ok(())
})?;
workbook.get_new_sheet().write_sheet(|sheet_writer| {
sheet_writer.write_row(row![("Another", &header_style), ("Sheet", &header_style), ("Header", &header_style)])?;
sheet_writer.write_row(row![1.32, 2.43, 3.54])?;
Ok(())
})?;
workbook.finish()?;
files.flush()?;
Ok(())
}
依赖项
~1MB
~18K SLoC