当前位置: 首页 > 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(())
}

相关文章:

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

Rust使用calamine读取已存在的test.xlsx文件全部数据&#xff0c;还读取指定单元格数据&#xff1b;Rust使用rust_xlsxwriter创建新的output.xlsx文件&#xff0c;并写入数据到指定单元格&#xff0c;然后再保存工作簿。 Cargo.toml main.rs /*rust读取excel文件*/ use cala…...

中文文本分类(pytorch 实现)

import torch import torch.nn as nn import torchvision from torchvision import transforms, datasets import os, PIL, pathlib, warningswarnings.filterwarnings("ignore") # 忽略警告信息# win10系统 device torch.device("cuda" if torch.cuda.i…...

【每日前端面经】2023-02-27

题目来源: 牛客 CSS盒模型 CSS中的盒子包括margin|border|padding|content四个部分&#xff0c;对于标准盒子模型&#xff08;content-box&#xff09;的widthcontent&#xff0c;但是对于IE盒子模型&#xff08;border-box&#xff09;的widthcontentborder2padding2 CSS选…...

springboot + easyRules 搭建规则引擎服务

依赖 <dependency><groupId>org.jeasy</groupId><artifactId>easy-rules-core</artifactId><version>4.0.0</version></dependency><dependency><groupId>org.jeasy</groupId><artifactId>easy-rules…...

Mac电脑配置环境变量

1.打开配置文件bash_profile open -e .bash_profile 2.如果没有创建过.bash_profile&#xff0c;则先需要创建 touch .bash_profile 3.输入你要配置的环境变量 #Setting PATH for Android ADB Tools export ANDROID_HOME/Users/xxx/android export PATH${PATH}:${ANDROID_HOME}…...

Windows系统x86机器安装(麒麟、统信)ARM系统详细教程

本次介绍在window系统x86机器上安装国产系统 arm 系统的详细教程。 注&#xff1a;ubuntu 的arm系统安装是一样的流程。 1.安装环境准备。 首先&#xff0c;你得有台电脑&#xff0c;配置别太差&#xff0c;至少4核8G内存&#xff0c;安装window10或者11都行&#xff08;为啥…...

消息中间件篇之RabbitMQ-高可用机制

一、怎么保证高可用性 在生产环境下&#xff0c;使用集群来保证高可用性&#xff0c;一般我们采用普通集群、镜像集群、仲裁队列。 二、普通集群 普通集群&#xff0c;或者叫标准集群&#xff08;classic cluster&#xff09;&#xff0c;具备下列特征&#xff1a; 1. 会在集…...

express+mysql+vue,从零搭建一个商城管理系统5--用户注册

提示&#xff1a;学习express&#xff0c;搭建管理系统 文章目录 前言一、新建user表二、安装bcryptjs、MD5、body-parser三、修改config/db.js四、新建config/bcrypt.js五、新建models文件夹和models/user.js五、index.js引入使用body-parser六、修改routes/user.js七、启动项…...

canvas水波纹效果,jquery鼠标水波纹插件

canvas水波纹效果&#xff0c;jquery鼠标水波纹插件 效果展示 jQuery水波纹效果&#xff0c;canvas水波纹插件 HTML代码片段 <div class"scroll04wrap"><h3>发展历程</h3><div class"scroll04"><p>不要回头&#xff0c;一…...

Zookeeper客户端命令、JAVA API、监听原理、写数据原理以及案例

1. Zookeeper节点信息 指定服务端&#xff0c;启动客户端命令&#xff1a; bin/zkCli.sh -server 服务端主机名:端口号 1&#xff09;ls / 查看根节点下面的子节点 ls -s / 查看根节点下面的子节点以及根节点详细信息 其中&#xff0c;cZxid是创建节点的事务id&#xff0c…...

[嵌入式系统-34]:RT-Thread -19- 新手指南:RT-Thread标准版系统架构

目录 一、RT-Thread 简介 二、RT-Thread 概述 三、许可协议 四、RT-Thread 的架构 4.1 内核层&#xff1a; 4.2 组件与服务层&#xff1a; 4.3 RT-Thread 软件包&#xff1a; 一、RT-Thread 简介 作为一名 RTOS 的初学者&#xff0c;也许你对 RT-Thread 还比较陌生。然…...

postman访问k8s api

第一种方式&#xff1a; kubectl -n kubesphere-system get sa kubesphere -oyaml apiVersion: v1 kind: ServiceAccount metadata:annotations:meta.helm.sh/release-name: ks-coremeta.helm.sh/release-namespace: kubesphere-systemcreationTimestamp: "2023-07-24T07…...

UE4c++ ConvertActorsToStaticMesh

UE4c ConvertActorsToStaticMesh ConvertActorsToStaticMesh UE4c ConvertActorsToStaticMesh创建Edior模块&#xff08;最好是放Editor模块毕竟是编辑器代码&#xff09;创建UBlueprintFunctionLibraryUTestFunctionLibrary.hUTestFunctionLibrary.cpp:.Build.cs 目标:为了大量…...

Qt中tableView控件的使用

tableView使用注意事项 tableView在使用时&#xff0c;从工具栏拖动到底层页面后&#xff0c;右键进行选择如下图所示&#xff1a; 此处需要注意的是&#xff0c;需要去修改属性&#xff0c;从UI上修改属性如下所示&#xff1a; 也可以通过代码修改属性&#xff1a; //将其设…...

【医学影像】LIDC-IDRI数据集的无痛制作

LIDC-IDRI数据集制作 0.下载0.0 链接汇总0.1 步骤 1.合成CT图reference 0.下载 0.0 链接汇总 LIDC-IDRI官方网址&#xff1a;https://www.cancerimagingarchive.net/nbia-search/?CollectionCriteriaLIDC-IDRINBIA Data Retriever 下载链接&#xff1a;https://wiki.canceri…...

MacOS开发环境搭建详解

搭建MacOS开发环境需要准备相应的软硬件&#xff0c;并遵循一系列步骤。以下是详细的步骤&#xff1a; 软硬件准备&#xff1a; MacOS电脑&#xff1a;确保你的电脑运行的是MacOS操作系统。Xcode软件&#xff1a;打开AppStore&#xff0c;搜索并安装Xcode。安装过程可能较长&…...

全量知识系统问题及SmartChat给出的答复 之2

Q6. 根据DDD的思想( 也就是借助 DDD的某个或某些实现)&#xff0c;是否能按照这个想法给出程序设计和代码结构&#xff1f; 当使用领域驱动设计&#xff08;DDD&#xff09;的思想来设计程序和代码结构时&#xff0c;可以根据领域模型、领域服务、值对象、实体等概念来进行设计…...

嵌入式驱动学习第一周——vim的使用

前言 本篇博客学习使用vim&#xff0c;vim作为linux下的编辑器&#xff0c;学linux肯定是绕不开vim的&#xff0c;因为不确定对方环境中是否安装了编译器&#xff0c;但一定会有vim。 对于基本的使用只需要会打开文件&#xff0c;保存文件&#xff0c;编辑文件即可。 嵌入式驱动…...

loop_list单向循环列表

#include "loop_list.h" //创建单向循环链表 loop_p create_head() { loop_p L(loop_p)malloc(sizeof(loop_list)); if(LNULL) { printf("create fail\n"); return NULL; } L->len 0; L->nextL; retur…...

Python爬虫实战第二例【二】

零.前言&#xff1a; 本文章借鉴&#xff1a;Python爬虫实战&#xff08;五&#xff09;&#xff1a;根据关键字爬取某度图片批量下载到本地&#xff08;附上完整源码&#xff09;_python爬虫下载图片-CSDN博客 大佬的文章里面有API的获取&#xff0c;在这里我就不赘述了。 一…...

Qwen3.5-2B低门槛部署指南:无Linux经验用户也能完成的5步流程

Qwen3.5-2B低门槛部署指南&#xff1a;无Linux经验用户也能完成的5步流程 1. 为什么选择Qwen3.5-2B Qwen3.5-2B是阿里云推出的轻量化多模态基础模型&#xff0c;属于Qwen3.5系列的小参数版本&#xff08;20亿参数&#xff09;。这个模型特别适合想要尝试AI能力但又担心硬件配…...

DeepSeek总结的令人惊叹的客户端 Markdown:markdeep

https://casual-effects.com/markdeep/ 令人惊叹的客户端 Markdown 零安装。 下载模板 ⤓ Markdeep 文档在浏览器中看起来像 PDF&#xff0c;在编辑器中用起来像原生 ASCII 文档。它无需插件、导出或服务器。支持所有操作系统和编辑器。 Markdeep 支持样式表、图表、日历、引用…...

别再死磕协议文档了!用MIPI M-PHY和UniPro的视角,重新理解UFS2.2的‘挡位’与‘车道’

从汽车变速箱到数据高速公路&#xff1a;UFS2.2传输机制的全新解读 当你在高速公路上驾驶一辆手动挡汽车时&#xff0c;换挡杆的每个位置都对应着特定的速度区间——一挡适合起步&#xff0c;五挡则用于巡航。这种直观的机械逻辑&#xff0c;恰好能帮助我们理解UFS2.2存储协议中…...

从‘浪费生命’到‘轻松驾驭’:我的NRF24L01/SI24L01调试心路与替代方案盘点

从‘浪费生命’到‘轻松驾驭’&#xff1a;NRF24L01/SI24L01调试心路与替代方案盘点 第一次点亮NRF24L01模块时&#xff0c;我天真地以为无线通信的大门就此敞开。直到连续三天的调试中&#xff0c;这个火柴盒大小的模块让我经历了从期待到崩溃的全过程——明明代码和接线都&qu…...

甲方爸爸要的PPT展示功能,我用Unity3d + Aspose.Slides搞定了(附打包避坑指南)

Unity3D与Aspose.Slides实战&#xff1a;高效集成PPT展示功能的完整方案 当甲方提出"在Unity项目中嵌入PPT展示"的需求时&#xff0c;许多开发者第一反应可能是寻找现成的插件或考虑导出为图片序列。但真正经历过项目交付的老手都知道&#xff0c;这两种方案要么功能…...

哔咔漫画下载器终极指南:打造个人离线漫画图书馆的简单方法

哔咔漫画下载器终极指南&#xff1a;打造个人离线漫画图书馆的简单方法 【免费下载链接】picacomic-downloader 哔咔漫画 picacomic pica漫画 bika漫画 PicACG 多线程下载器&#xff0c;带图形界面 带收藏夹&#xff0c;已打包exe 下载速度飞快 项目地址: https://gitcode.co…...

从UML到SysML:给软件工程师的系统思维升级指南(含实战案例拆解)

从UML到SysML&#xff1a;给软件工程师的系统思维升级指南&#xff08;含实战案例拆解&#xff09; 当软件工程师第一次接触需要协调传感器、控制器和机械臂的物联网项目时&#xff0c;往往会陷入"代码思维"的困境——试图用类图和时序图描述所有交互&#xff0c;却发…...

Python列表操作教程

Python列表操作教程 【免费下载链接】mx-bili-plugin 项目地址: https://gitcode.com/gh_mirrors/mx/mx-bili-plugin 基础概念 列表是Python中最常用的数据结构之一... 视频演示 关键代码示例 # 创建列表 my_list [1, 2, 3, 4, 5]# 列表切片操作 subset my_list[1…...

STM32G474硬件IIC+DMA驱动OLED避坑指南:从软件IIC迁移到DMA的完整流程

STM32G474硬件IICDMA驱动OLED性能优化实战 在嵌入式开发中&#xff0c;OLED显示屏因其高对比度、低功耗和快速响应等特性&#xff0c;成为许多项目的首选显示方案。传统软件IIC方案虽然实现简单&#xff0c;但在高刷新率场景下会显著增加CPU负担。本文将深入探讨如何利用STM32…...

CLAP音频分类降本提效:相比微调方案节省90%标注与训练成本

CLAP音频分类降本提效&#xff1a;相比微调方案节省90%标注与训练成本 1. 音频分类的新选择 传统音频分类需要大量标注数据和长时间训练&#xff0c;现在有了更简单的方法。CLAP音频分类技术让你不用标注一张标签&#xff0c;不用训练一分钟模型&#xff0c;就能完成专业级的…...