小工具知识网

当前位置: 首页 > 行业知识 > Rust使用calamine读取excel文件,Rust使用rust

行业知识

Rust使用calamine读取excel文件,Rust使用rust

2026-11-01 01:37:14 来源:互联网转载

Rust使���calamine读取已存在的test.xlsx文件全部数据,还读取指定单元格数据;Rust使用rust_xlsxwriter创建新的output.xlsx文件,并写入数据到指定单元格,然后再保存工作簿。

Cargo.toml

main.rs

/*rust读取excel文件*/use calamine::{open_workbook, DataType, Error, Reader, Xlsx};//rust使用rust_xlsxwriter写入excel文件use rust_xlsxwriter::{Workbook, XlsxError};fn main() {    let _ = read_excel();    let _ = write_excel();}// rust使用calamine库读取Excelfn read_excel() -> Result {    let file_path = "test.xlsx";    // opens a new workbook    let mut workbook: Xlsx = open_workbook(file_path).expect("Cannot open file");    let mut worksheet = workbook        .worksheet_range("Sheet1")        .expect("Cannot find 'Sheet1'");    for (row_index, row) in worksheet.rows().enumerate() {        // 遍历每列并输出内容        for (col_index, cell) in row.iter().enumerate() {            // 获取所有单元格的值            println!(                "Sheet1 - Row {}, Column {} : {}",                row_index + 1,                col_index + 1,                cell            );            /*            // 获取特定单元格的值(字符串类型)            if let DataType::String(value) = cell {                println!(                    "Cell value at Sheet1 - Row {}, Column {} is '{}'",                    row_index + 1,                    col_index + 1,                    value                );            }            */            /*            // 获取所有单元格的值及类型            println!(                "Sheet1 - Row {}, Column {} : {:?}",                row_index + 1,                col_index + 1,                cell            );DataType            */        }        /*        //打印每行数据        println!("{:?}", row);        // 或者按需提取特定列的值        let column1 = &row[0];        let column2 = &row[1];        */    }    println!("------读取指定单元格数值,(row_index=1,col_index=5)--------------");    let option_value = worksheet.get_value((1, 5));    // 使用 `.to_string()` 进行转换    if let Some(ref value) = option_value {        println!("{}", value.to_string());    } else {        println!("None");    }    /*    //备注:可以使用下面方法写入数据,也可以再次读取出来,没有找到保存数据方法,一旦关闭工作簿后,还是不能保存数据,现在calamine库只能读取excel数据,不支持写入保存数据。    println!("------设置指定单元格数值,(row_index=10,col_index=5)--------------");    worksheet.set_value((10, 2), DataType::Float(39.8));    println!("-------------------------------------------------------------");    */    // 关闭工作簿    drop(workbook);    Ok(())}// rust使用rust_xlsxwriter库写入Excelfn write_excel() -> Result {    let file_name = "output.xlsx";    let mut workbook2 = Workbook::new();    let worksheet2 = workbook2.add_worksheet();    worksheet2.write_string(2, 1, "Hello")?;    //保存工作簿    workbook2.save(file_name)?;    //关闭工作簿    drop(workbook2);    Ok(())}

上一篇:csgo社区服务器怎么建立?

下一篇:揭秘SQL递归查询的神奇应用,从基础到实践详解