#xlsx #excel #office

simple-xlsx-writer

一个简单且内存高效的XLSX编写器

3个版本

0.1.2 2024年1月2日
0.1.1 2024年1月2日
0.1.0 2022年11月28日

#640 in 编码

MIT/Apache

48KB
1K SLoC

simple_xlsx_writer

这是一个非常简单的XLSX编写器库。

这个库功能不丰富,也不打算丰富。许多设计都是基于 simple_excel_writer 的作品,我建议你检查一下这个crate。

这个crate的主要思想是帮助你使用很少的RAM来构建XLSX文件。我创建它是为了在我的Web Assembly网站上使用 csv2xlsx

基本上,你只需要将实现了 WriteSeek 的输出传递给 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