Rust如何操作Excel文件
最近在学习Rust语言,想用Rust来处理Excel文件,但不知道有哪些好用的库可以使用。有没有比较成熟的Rust库可以读取、写入和修改Excel文件?希望支持xlsx格式,最好能提供一些简单的代码示例。另外,如果需要对大量数据进行操作,性能方面表现如何?
2 回复
可以使用calamine或rust_xlsxwriter库。calamine适合读取Excel文件,支持xlsx、xls等格式;rust_xlsxwriter则用于创建和写入Excel文件。安装依赖后,简单几行代码就能读写数据,比如读取单元格内容或生成带格式的表格。
在Rust中操作Excel文件,推荐使用以下库:
主要库推荐
1. calamine(推荐)
专门处理Excel文件的纯Rust库,支持.xlsx、.xls格式:
use calamine::{open_workbook, Reader, Xlsx};
fn read_excel() -> Result<(), Box<dyn std::error::Error>> {
let mut workbook: Xlsx<_> = open_workbook("data.xlsx")?;
if let Some(Ok(range)) = workbook.worksheet_range("Sheet1") {
for row in range.rows() {
for cell in row {
print!("{} ", cell);
}
println!();
}
}
Ok(())
}
2. rust_xlsxwriter
用于创建和写入Excel文件:
use rust_xlsxwriter::{Workbook, XlsxError};
fn write_excel() -> Result<(), XlsxError> {
let mut workbook = Workbook::new();
let worksheet = workbook.add_worksheet();
worksheet.write_string(0, 0, "Hello")?;
worksheet.write_number(0, 1, 123)?;
workbook.save("output.xlsx")?;
Ok(())
}
完整示例
// Cargo.toml 依赖
// calamine = "0.22"
// rust_xlsxwriter = "0.34"
use calamine::{open_workbook, Reader, Xlsx, DataType};
use rust_xlsxwriter::{Workbook, Format, Color};
fn main() -> Result<(), Box<dyn std::error::Error>> {
// 读取Excel
let mut workbook: Xlsx<_> = open_workbook("input.xlsx")?;
if let Some(Ok(range)) = workbook.worksheet_range("Sheet1") {
for (row_num, row) in range.rows().enumerate() {
println!("行 {}: {:?}", row_num, row);
}
}
// 写入Excel
let mut workbook = Workbook::new();
let worksheet = workbook.add_worksheet();
let bold_format = Format::new().set_bold().set_font_color(Color::Red);
worksheet.write_string_with_format(0, 0, "姓名", &bold_format)?;
worksheet.write_string(1, 0, "张三")?;
worksheet.write_number(1, 1, 25)?;
workbook.save("output.xlsx")?;
Ok(())
}
主要特性
- calamine: 读取性能优秀,内存占用低
- rust_xlsxwriter: 功能丰富,支持格式设置、图表等
- 两个库都支持.xlsx格式,calamine还支持旧的.xls格式
选择哪个库取决于你的具体需求:读取用calamine,写入用rust_xlsxwriter。

