umya-spreadsheet:一个纯Rust编写的Excel操作库
umya-spreadsheet 是一款采用纯Rust语言实现的库,专为读取和写入.xlsx
文件设计。
安装指南
要将 umya-spreadsheet 库集成到您的Rust项目中,您需要在项目的Cargo.toml
文件里添加以下依赖:
[dependencies]
umya_spreadsheet = "2.0.1"
如果您还需要WebAssembly支持,则应配置如下:
umya_spreadsheet = { version = "2.0.1", features = ["js"] }
之后,在您的主代码(如main.rs
)中引入该库:
extern crate umya_spreadsheet;
项目使用说明
读取文件
基本的文件读取可以通过以下代码完成:
use std::path::Path;
let path = Path::new("./tests/test_files/aaa.xlsx");
let mut book = umya_spreadsheet::reader::xlsx::read(path).expect("读取失败");
对于大量数据的文件,建议使用懒加载以提高响应速度:
let path = Path::new("./tests/test_files/aaa.xlsx");
let mut book = umya_spreadsheet::reader::xlsx::lazy_read(path).expect("懒加载读取失败");
创建新文件
创建一个新的Excel工作簿很简单:
let mut book = umya_spreadsheet::new_file();
写入文件
写入操作同样直观:
let path = Path::new("./tests/result_files/bbb.xlsx");
umya_spreadsheet::writer::xlsx::write(&book, path).expect("写入失败");
如果需要加密文件,可以这样做:
umya_spreadsheet::writer::xlsx::write_with_password(&book, path, "your-password").expect("带密码写入失败");
或者设置已有文件的密码:
let from_path = Path::new("./tests/test_files/aaa.xlsx");
let to_path = Path::new("./tests/result_files/bbb.xlsx");
umya_spreadsheet::writer::xlsx::set_password(from_path, to_path, "new-password").expect("设置密码失败");
访问和修改单元格
访问单元格值的方式多样:
// 根据标签或索引访问单元格
let val = book.get_sheet_by_name("Sheet1").unwrap().get_cell("A1").get_value();
let val_by_index = book.get_sheet_by_name("Sheet1").unwrap().get_cell((1, 1)).get_value();
修改单元格内容也很简单:
book.get_sheet_by_name_mut("Sheet1").unwrap().get_cell_mut("A1").set_value("新的值");
更多功能
还包括移动值、改变样式、新增图表等高级功能。例如,改变样式:
let mut style = book.get_sheet_by_name_mut("Sheet1").unwrap().get_style_mut("A1");
style.set_background_color(umya_spreadsheet::Color::COLOR_RED);
以及添加图表:
// 添加折线图示例
let chart = umya_spreadsheet::structs::Chart::create_line_chart_from_ranges(...);
book.get_sheet_by_name_mut("Sheet1").unwrap().add_chart(chart);
API使用文档简述
- 文件操作:支持
.xlsx
和.xlsm
格式的读写,并提供了CSV写入功能。 - 工作表管理:支持新建、读取、复制工作表。
- 单元格处理:全面支持读取、编辑单元格内容及其格式化值。
- 样式调整:详细控制单元格样式,如背景色。
- 列与行操作:包含读取与编辑列宽、行高等。
- 图表与图像:支持图表创建与编辑,以及图像的读取和嵌入。
- 安全性:提供加解密文件的能力。
以上为 umya-spreadsheet 的基础使用指导和简介,更多详细的API文档和功能演示,请参考项目的官方文档和示例代码。此库遵循MIT开源协议,鼓励贡献和改进,确保您的代码整洁并符合Rust的最佳实践标准。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考