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文件全部数据,还读取指定单元格数据;Rust使用rust_xlsxwriter创建新的output.xlsx文件,并写入数据到指定单元格,然后再保存工作簿。 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四个部分,对于标准盒子模型(content-box)的widthcontent,但是对于IE盒子模型(border-box)的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,则先需要创建 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 系统的详细教程。 注:ubuntu 的arm系统安装是一样的流程。 1.安装环境准备。 首先,你得有台电脑,配置别太差,至少4核8G内存,安装window10或者11都行(为啥…...
消息中间件篇之RabbitMQ-高可用机制
一、怎么保证高可用性 在生产环境下,使用集群来保证高可用性,一般我们采用普通集群、镜像集群、仲裁队列。 二、普通集群 普通集群,或者叫标准集群(classic cluster),具备下列特征: 1. 会在集…...
express+mysql+vue,从零搭建一个商城管理系统5--用户注册
提示:学习express,搭建管理系统 文章目录 前言一、新建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水波纹效果,jquery鼠标水波纹插件 效果展示 jQuery水波纹效果,canvas水波纹插件 HTML代码片段 <div class"scroll04wrap"><h3>发展历程</h3><div class"scroll04"><p>不要回头,一…...
Zookeeper客户端命令、JAVA API、监听原理、写数据原理以及案例
1. Zookeeper节点信息 指定服务端,启动客户端命令: bin/zkCli.sh -server 服务端主机名:端口号 1)ls / 查看根节点下面的子节点 ls -s / 查看根节点下面的子节点以及根节点详细信息 其中,cZxid是创建节点的事务id,…...
[嵌入式系统-34]:RT-Thread -19- 新手指南:RT-Thread标准版系统架构
目录 一、RT-Thread 简介 二、RT-Thread 概述 三、许可协议 四、RT-Thread 的架构 4.1 内核层: 4.2 组件与服务层: 4.3 RT-Thread 软件包: 一、RT-Thread 简介 作为一名 RTOS 的初学者,也许你对 RT-Thread 还比较陌生。然…...
postman访问k8s api
第一种方式: 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模块(最好是放Editor模块毕竟是编辑器代码)创建UBlueprintFunctionLibraryUTestFunctionLibrary.hUTestFunctionLibrary.cpp:.Build.cs 目标:为了大量…...
Qt中tableView控件的使用
tableView使用注意事项 tableView在使用时,从工具栏拖动到底层页面后,右键进行选择如下图所示: 此处需要注意的是,需要去修改属性,从UI上修改属性如下所示: 也可以通过代码修改属性: //将其设…...
【医学影像】LIDC-IDRI数据集的无痛制作
LIDC-IDRI数据集制作 0.下载0.0 链接汇总0.1 步骤 1.合成CT图reference 0.下载 0.0 链接汇总 LIDC-IDRI官方网址:https://www.cancerimagingarchive.net/nbia-search/?CollectionCriteriaLIDC-IDRINBIA Data Retriever 下载链接:https://wiki.canceri…...
MacOS开发环境搭建详解
搭建MacOS开发环境需要准备相应的软硬件,并遵循一系列步骤。以下是详细的步骤: 软硬件准备: MacOS电脑:确保你的电脑运行的是MacOS操作系统。Xcode软件:打开AppStore,搜索并安装Xcode。安装过程可能较长&…...
全量知识系统问题及SmartChat给出的答复 之2
Q6. 根据DDD的思想( 也就是借助 DDD的某个或某些实现),是否能按照这个想法给出程序设计和代码结构? 当使用领域驱动设计(DDD)的思想来设计程序和代码结构时,可以根据领域模型、领域服务、值对象、实体等概念来进行设计…...
嵌入式驱动学习第一周——vim的使用
前言 本篇博客学习使用vim,vim作为linux下的编辑器,学linux肯定是绕不开vim的,因为不确定对方环境中是否安装了编译器,但一定会有vim。 对于基本的使用只需要会打开文件,保存文件,编辑文件即可。 嵌入式驱动…...
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爬虫实战第二例【二】
零.前言: 本文章借鉴:Python爬虫实战(五):根据关键字爬取某度图片批量下载到本地(附上完整源码)_python爬虫下载图片-CSDN博客 大佬的文章里面有API的获取,在这里我就不赘述了。 一…...
Qwen3.5-2B低门槛部署指南:无Linux经验用户也能完成的5步流程
Qwen3.5-2B低门槛部署指南:无Linux经验用户也能完成的5步流程 1. 为什么选择Qwen3.5-2B Qwen3.5-2B是阿里云推出的轻量化多模态基础模型,属于Qwen3.5系列的小参数版本(20亿参数)。这个模型特别适合想要尝试AI能力但又担心硬件配…...
DeepSeek总结的令人惊叹的客户端 Markdown:markdeep
https://casual-effects.com/markdeep/ 令人惊叹的客户端 Markdown 零安装。 下载模板 ⤓ Markdeep 文档在浏览器中看起来像 PDF,在编辑器中用起来像原生 ASCII 文档。它无需插件、导出或服务器。支持所有操作系统和编辑器。 Markdeep 支持样式表、图表、日历、引用…...
别再死磕协议文档了!用MIPI M-PHY和UniPro的视角,重新理解UFS2.2的‘挡位’与‘车道’
从汽车变速箱到数据高速公路:UFS2.2传输机制的全新解读 当你在高速公路上驾驶一辆手动挡汽车时,换挡杆的每个位置都对应着特定的速度区间——一挡适合起步,五挡则用于巡航。这种直观的机械逻辑,恰好能帮助我们理解UFS2.2存储协议中…...
从‘浪费生命’到‘轻松驾驭’:我的NRF24L01/SI24L01调试心路与替代方案盘点
从‘浪费生命’到‘轻松驾驭’:NRF24L01/SI24L01调试心路与替代方案盘点 第一次点亮NRF24L01模块时,我天真地以为无线通信的大门就此敞开。直到连续三天的调试中,这个火柴盒大小的模块让我经历了从期待到崩溃的全过程——明明代码和接线都&qu…...
甲方爸爸要的PPT展示功能,我用Unity3d + Aspose.Slides搞定了(附打包避坑指南)
Unity3D与Aspose.Slides实战:高效集成PPT展示功能的完整方案 当甲方提出"在Unity项目中嵌入PPT展示"的需求时,许多开发者第一反应可能是寻找现成的插件或考虑导出为图片序列。但真正经历过项目交付的老手都知道,这两种方案要么功能…...
哔咔漫画下载器终极指南:打造个人离线漫画图书馆的简单方法
哔咔漫画下载器终极指南:打造个人离线漫画图书馆的简单方法 【免费下载链接】picacomic-downloader 哔咔漫画 picacomic pica漫画 bika漫画 PicACG 多线程下载器,带图形界面 带收藏夹,已打包exe 下载速度飞快 项目地址: https://gitcode.co…...
从UML到SysML:给软件工程师的系统思维升级指南(含实战案例拆解)
从UML到SysML:给软件工程师的系统思维升级指南(含实战案例拆解) 当软件工程师第一次接触需要协调传感器、控制器和机械臂的物联网项目时,往往会陷入"代码思维"的困境——试图用类图和时序图描述所有交互,却发…...
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性能优化实战 在嵌入式开发中,OLED显示屏因其高对比度、低功耗和快速响应等特性,成为许多项目的首选显示方案。传统软件IIC方案虽然实现简单,但在高刷新率场景下会显著增加CPU负担。本文将深入探讨如何利用STM32…...
CLAP音频分类降本提效:相比微调方案节省90%标注与训练成本
CLAP音频分类降本提效:相比微调方案节省90%标注与训练成本 1. 音频分类的新选择 传统音频分类需要大量标注数据和长时间训练,现在有了更简单的方法。CLAP音频分类技术让你不用标注一张标签,不用训练一分钟模型,就能完成专业级的…...
