25.labview数据采集中的读取和写入文本文件和Excel表格文件

本文将会讲解labview读取和写入文本文件和Excel文件 的几种不同方式,讲解程序的基本原理,并提出具体的实施方案,本文内容如下所示。
本文文章结束会提供大家 文本和表格读取写入的源程序 ,以便于大家学习和使用。

本文中可能用到的基础知识为路径、字符串、数组等相关的知识,如果想补充与路径相关的基础知识的话可以点击下方链接查看:
Labview字符串与路径精讲(下) --- 字符串及路径的用法汇总:
https://blog.csdn.net/m0_52176775/article/details/136907059

文件读写

  • [1. 数据存储的类型](#1. 数据存储的类型)
  • [1. 文本文件的读取和写入](#1. 文本文件的读取和写入)
    • [1.1 文本文件读取](#1.1 文本文件读取)
    • [1.2 文本文件写入](#1.2 文本文件写入)
  • [2. Excel表格文件的读取和写入](#2. Excel表格文件的读取和写入)
    • [2.1 获取Excel的表格Sheet信息](#2.1 获取Excel的表格Sheet信息)
    • [2.2 Excel的读取与写入](#2.2 Excel的读取与写入)

1. 数据存储的类型

本文中只讲解两种数据存储类型,即文本(txt)类型和表格(excel)类型数据, 这两种存储类型我们可以认为是存储的中间类型,可用做原始数据 的存储,以便于matlab等相关软件识别调用做后续数据处理相关工作。

由图可以看到,第一层为Laview进行数据采集的阶段,获取原始数据并显示,第二层为数据存储阶段,根据数据类型的存储要求,提供了文本存储和表格存储两种方式。具体如下文所示

1. 文本文件的读取和写入

本节内容的应用场景比较广泛,如我们在进行仪器的数据采集 实验中,得到来自于传感器或者仪器内部采集到的大量原始数据 时,以何种形式储存是至关重要的,这意味着我们将数据保存为某种中间格式后将拿到什么软件中进行处理,因此数据的保存格式及保存的文件格式都是至关重要的。

如:一个时域仪器实时采集外在信号,我们将仪器采集到的时域数据以二维数组的形式保存为txt格式的文本数据,在matlab和python中都可以通过分隔符的索引调用该数据并进行去噪相关的数据处理。

1.1 文本文件读取

文本文件的读取往往与字符串相关,即读取的在Labview中显示为字符串形式,程序如下图所示:

本程序中使用了打开/创建/替换文件、读取文本文件、关闭文件 三个函数,在文件路径中输入想要打开的文本文件,点击运行程序,此时前面板文本字符串控件中就可以看到对应TXT文件内的内容了。
这里需要特别注意一点,当我们的TXT文档里面有中文时,此时打开显示时我们发现我们的字符串里边的文字都是乱码的, 这是由于文件的编码格式不同导致的,如下图所示:

当我们发现有这种情况时,只需要将文本文件另存为一个新文件,并在保存前将文件的编码格式转换为ANSI格式即可。

转换完成后我们在运行程序发现前面板的字符串中显示的文本变成了正常文本。

文本文件的读取方式比较简单在此提出将不做过多的赘述。

1.2 文本文件写入

①字符串类 文本文件的写入方式与读取方式其实是差不多的,其具体程序如下图所示:

输入文件路径并将需要写入的文件在前面板输入控件中输入,点击运行程序,此时打开.txt文件就可以看到文内容已经更新到文本文件中了。

文件中显示如图所示:

这里需要说明一下,从一个程序中大家既想写入文件又想读取文件时,那么尽量在写入文件之后关闭该文件,然后再重新创建新的路径打开此文件,最终在文件调用结束后关闭程序前使用关闭文件函数释放掉该文件所在路径的内存引用,避免内存引用占用程序过多的路径及内存,针对于以上的情况大家可以使用移位寄存器来刷新文件的路径,这样就可以避免多次重复打开文件了。

②数组类文件 写入除了将数字转换为字符串再使用上述方法之外,还可以使用表格函数直接将数据写入,其程序可以使用如下函数来写。可以看到该函数有两个重点,一个是文件路径 这里不过多强调,第二个该函数可以选择传入一维数据或二维数据。

我们以一个一维数组为例,随机生成一个20个元素的一维数组,每个元素大小为0-100,在目标文件中生成该文件,程序如下图所示:

运行程序后,我们得到一个文本文件,此时写入成功。

题主觉得这种写入数组文件的方式更适合做一些用于matlab等数据处理时调用的文本文件。

2. Excel表格文件的读取和写入

本节说明一下将Excel文件写入Excel表格和读取出数据的方式,这种功能常用在自动化测试中的测试用例写入、测试数据写入等场景中,话不多说,分两个小节来叙述。

2.1 获取Excel的表格Sheet信息

Excel文件的读取的函数,我们使用后面板函数中的 "文件I/O"---高级文件函数 中的函数和 "报表生成" 中的相关函数来写, 我们都知道一个Excel文件是可以创建多个Sheet的,那么当我们建立分表时,写入哪个分表就成了一个问题,本节给大家介绍一个获取所有分表的一个程序:

我来解释一下这个程序,使用了四个函数 "创建报表、Get Worksheet、Workbook Properties、处置报表" 初始化创建一个报表的程序,在while循环中依次按顺序打开报表中的sheet,这里注意:当没有该sheet时,错误簇为T,程序终止。接下来看一下效果,在Excel中创建了以下几个sheet:

在我们程序的前面板将该表格地址输入,运行后可以看到。

2.2 Excel的读取与写入

在这里我将Excel表格的读取和写入放在了一个文件中,因为我考虑到大家在写程序的时候可以将这个程序封装为一个VI ,以便于可以调用,到时候既可以做读取,也可以做写入,具体的读取与写入代码如下:

由于我们使用的是Excel表格,所以题主在这里将数据类型定义为了 二维数组

该程序可以读取当前表格内部的对应sheet的内容,并且以二维数组的格式列举出来,在"写入数据"的二维数组中,整理对应的表格,程序会自动将该表格内部的数据保存至相应的Excel表格的相应位置。

这里就不在给大家过多讲解了,我把程序分享在文章的末尾,大家自行学习。

链接:https://pan.baidu.com/s/1oBWLpVCzSs9IfJSXvw8rJA

提取码:6666

相关推荐
2603_965148113 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
ltl3 小时前
RocksDB 经典故障排查:L0、compaction 与 write stall
数据库
xfhuangfu4 小时前
Oracle中建立到CDB和PDB的连接
数据库·oracle·rpc
小小龙学IT4 小时前
DuckDB 深度实战:用 C++ 在进程内跑一个「分析型数据库」
数据库·c++
NineData4 小时前
DTCC 2026 预告|NineData CEO& 创始人叶正盛:面向 AI Agent 的数据库 DevOps 与数据复制实践
数据库·人工智能·数据库开发·devops·ninedata·数据库技术·dtcc
J_bean5 小时前
MySQL 事务是否必须手动开启?
数据库·mysql·数据库事务·自动提交·手动提交
J_bean5 小时前
MySQL InnoDB 如何检测死锁、判定死锁、处理死锁
数据库·mysql·死锁·死锁检测·处理死锁·死锁判定
浪子明X6 小时前
从 MongoDB 文档到关系模型:构建可重跑、可对账的数据迁移流水线
数据库·mongodb·oracle
杜子不疼.6 小时前
国产数据库撑起固井软件自主化:金仓 × 中海油服「海恒 Cemsol」落地解析
数据库
隔窗听雨眠6 小时前
GBase 8s并发控制深度解析:封锁机制、隔离级别与死锁处理全攻略
服务器·数据库·oracle