在 Rust 中处理 Excel:库与代码示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

在 Rust 中处理 Excel:库与代码示例

Rust 语言以其高性能和安全性著称,非常适合处理表格数据。如果您需要读取、创建或编辑 Excel 文件(.xlsx、.xls 格式),Rust 生态系统中有几个成熟的库可供使用。本文将介绍三个主要库:calamine(读取)、rust_xlsxwriter(写入)和 xlsx(完整流程)。您将了解如何安装它们,并看到可运行的代码示例。



calamine 库——读取 Excel 文件

calamine 是一个快速轻量级的库,用于读取 Excel 文件(xlsx、xls、xlsb、ods)。它无需安装外部依赖,开箱即用。支持读取单元格、工作表、公式和元数据。



安装

[dependencies]calamine = "0.26"


示例:从文件中读取数据

use calamine::{open_workbook, Reader, Xlsx};

fn main() -> 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 { // 每个单元格都是一个 DataType match cell { calamine::Data::String(s) => print!("{} ", s), calamine::Data::Float(f) => print!("{} ", f), calamine::Data::Int(i) => print!("{} ", i), _ => print!("? "), } } println!(); } }

Ok(())}


这段代码打开 data.xlsx 文件,读取 Sheet1 工作表,并逐行输出所有单元格。calamine 会自动检测数据类型(字符串、数字、日期等)。



rust_xlsxwriter 库——创建和写入 Excel

rust_xlsxwriter 是一个功能强大的库,用于创建 xlsx 文件。它支持格式化、合并单元格、图表、条件格式等功能。它是 Python 库 xlsxwriter 的直接对应版本。



安装

[dependencies]rust_xlsxwriter = "0.76"


示例:创建简单报告

use rust_xlsxwriter::{Workbook, Format, Color};

fn main() -> Result<(), Box<dyn std::error::Error>> { let mut workbook = Workbook::new();

// 创建标题格式 let header_format = Format::new() .set_bold() .set_font_color(Color::White) .set_background_color(Color::Blue);

// 添加工作表 let sheet = workbook.add_worksheet();

// 写入标题 sheet.write_with_format(0, 0, "姓名", &header_format)?; sheet.write_with_format(0, 1, "年龄", &header_format)?; sheet.write_with_format(0, 2, "城市", &header_format)?;

// 写入数据 sheet.write(1, 0, "安娜")?; sheet.write(1, 1, 28)?; sheet.write(1, 2, "莫斯科")?;

sheet.write(2, 0, "伊万")?; sheet.write(2, 1, 35)?; sheet.write(2, 2, "圣彼得堡")?;

// 保存到文件 workbook.save("report.xlsx")?;

println!("文件 report.xlsx 已成功创建!"); Ok(())}


在此示例中,我们创建了一个带有格式化标题(粗体文字、蓝色背景上的白色字体)和两行数据的文件。rust_xlsxwriter 还支持图表、图片和数据透视表。



xlsx 库——完整流程(读取 + 写入)

xlsx 是一个通用库,既可以读取也可以创建 xlsx 文件。它不如前两者流行,但

推荐