当前位置: 首页 > news >正文

Rust使用calamine读取excel文件,Rust使用rust_xlsxwriter写入excel文件

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库读取Excel
fn read_excel() -> Result<(), Error> {let file_path = "test.xlsx";// opens a new workbooklet 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库写入Excel
fn write_excel() -> Result<(), XlsxError> {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(())
}
http://www.lryc.cn/news/307418.html

相关文章:

  • 中文文本分类(pytorch 实现)
  • 【每日前端面经】2023-02-27
  • springboot + easyRules 搭建规则引擎服务
  • Mac电脑配置环境变量
  • Windows系统x86机器安装(麒麟、统信)ARM系统详细教程
  • 消息中间件篇之RabbitMQ-高可用机制
  • express+mysql+vue,从零搭建一个商城管理系统5--用户注册
  • canvas水波纹效果,jquery鼠标水波纹插件
  • Zookeeper客户端命令、JAVA API、监听原理、写数据原理以及案例
  • [嵌入式系统-34]:RT-Thread -19- 新手指南:RT-Thread标准版系统架构
  • postman访问k8s api
  • UE4c++ ConvertActorsToStaticMesh
  • Qt中tableView控件的使用
  • 【医学影像】LIDC-IDRI数据集的无痛制作
  • MacOS开发环境搭建详解
  • 全量知识系统问题及SmartChat给出的答复 之2
  • 嵌入式驱动学习第一周——vim的使用
  • loop_list单向循环列表
  • Python爬虫实战第二例【二】
  • Eclipse是如何创建web project项目的?
  • Excel的中高级用法
  • 【ArcGIS】基本概念-空间参考与变换
  • Qt QWidget 简约美观的加载动画 第五季 - 小方块风格
  • 针对KZG承诺和高效laconic OT的extractable witness encryption
  • Spring Boot中实现列表数据导出为Excel文件
  • 华为ipv6 over ipv4 GRE隧道配置
  • 项目解决方案:海外门店视频汇聚方案(全球性的连锁店、国外连锁店视频接入和汇聚方案)
  • Java中的数据类型详解
  • ABBYY FineReader16文档转换、PDF管理与文档比较功能介绍
  • 导览系统厂家|景区电子导览|手绘地图|AR导览|语音导览系统