CANoe-读写Excel文件

CANoe目前仅支持读写.csv文件,无法直接处理.xlsx或.xls文件。可以通过创建.NET测试节点,调用C#封装的DLL来实现对Excel文件的读写。DLL文件需遵循CAPLDLL格式。此外,文章提到了CSV和TXT、CSV和XLS(X)格式的区别,以及在不同场景下的选用考虑。
摘要由CSDN通过智能技术生成

1、CANoe读写Excel文件操作:
针对所有可用Excel打开的文件格式,目前CANoe仅支持.csv(文本文件)文件的读写,无法用CAPL编程实现对Excel文件的读写,.xlsx文件和.xls文件无法进行读写。可以在CANoe下创建.NET测试节点,实现对Excel文件的读写操作。
在这里插入图片描述
如图所示,openFileRead方法:
If mode=0 the file is opened in text mode;
if mode=1 the file is opened in binary mode.

csv和txt格式:
相同点: csv和txt都属于文本文件。
不同点:csv文件的字段间分别由逗号和tab键隔开,而txt文件则没有明确要求,可使用逗号/制表符/空格等 多种不同的符号。通常将数据存为csv格式,但是txt格式最大的优势便是:体积小,随便存!

通常来说,为了更好的用多种语言处理数据,推荐将数据存为csv格式(csv文件是以逗号分隔的一个文本文件,可以直接更改后缀为与其他类型文件),可同时在excle、python、matlab、sas和R等语言中切换自由简易,数据格式不受损!读取txt格式数据时,函数read_csv和read_table均可使用。

最主要差别: 从read_csv函数读取文件数据时,默认分隔符是逗号,txt文档并没有逗号分隔,所以在读取的时候需要增加sep分隔符参数。

csv和xls/xlsx格式:
1)csv是文本文件,可以用记事本打开;xls/xlsx是二进制文件,只有用EXCEL才能打开。
“xls 是一个特有的二进制格式,核心结构属于复合型文档类型,是2003版本Office Microsoft Office Excel工作表保存的默认格式。
xlsx的核心结构是XML类型结构,采用了XML的压缩方式,使其占用的空间更小,xlsx中最后一个x的意义就在于此,它是Excel2007版本的文件。新建Excel表格默认保存的后缀名为“.xlsx”。

2)csv文件只能保存活动工作表中单元格所显示的文本和数值,数据中每一列以逗号分隔,每一行都以回车换行符结束。如果单元格中包含逗号,则该单元格中的内容以双引号引起。xls/xlsx文件各个单元格之间的分隔符为Tab。

3)csv文件可以用记事本打开,进而转为txt格式的文件;xls/xlsx不能直接转为txt格式。若想转换,则需要另存为csv格式,然后再将csv以txt方式打开,点击另存为txt文件。csv本质是text,只是一堆逗号分隔的文本,你用Excel可以做数据处理,但是这种格式不会保存任何格式相关的东西,数据处理的过程也没办法保存下来,并且只会保存第一个sheet,如果你增加了sheet也不会保存下来,如果对格式有要求或者有多个sheet,请另存为xlsx,或者SQL数据库输出文件的时候就输出成xlsx格式,再做数据处理。

2、调用DLL文件
需要符合CAPL DLL格式的DLL文件才可以被CANoe调用,关于CAPL dll,在CANoe help文档查看,也不支持对Excel文件的操作。
CAPL DLL必须严格按照Vector定义的要求来创建,否则无法被CANoe识别。所有已创建的函数,必须借助函数列表(CAPL_DLL_INFO_LIST),才能导入到CAPL代码里,列表的第一行含有版本信息,必须按照以下格式来定义(用户无需修改)。
在这里插入图片描述

CANoe创建测试节点,通过调用C#封装的dll文件实现读写Excel文件
1、C#封装dll文件
使用C#封装一个.dll文件,实现对Excel文件的读写操作。
在C#中创建一个.NET framework工程,封装一个dll文件,实现Excel文件的打开、读取数据等功能。具体封装.dll的方法此处不做介绍,具体封装读写Excel的操作此处也不做介绍。
在这里插入图片描述
2、CANoe添加节点
在CANoe软件的Simulation setup中,在CAN1 Net work中添加节点。
右键→选择Insert.NET Test Module,通过.NET编程实现对Excel文件的操作。
在这里插入图片描述
3、配置节点
配置创建的.NET Test Module选中测试节点,右键→Configuration,在配置界面对.NET Test Module进行重命名,并且创建Test script,比如NetTest.cs。
在这里插入图片描述
4、打开.cs编程
双击创建的Test Module,打开NetTest.cs文件
在这里插入图片描述
在NetTest.cs中,引用创建的dll文件。在打开的工程(解决方案)中添加引用,然后在代码中添加using,比如:using MyDell。在NetTest.cs的Main函数中实现对Excel文件的读写操作。执行时如果要加延时,使用Execution.Wait(times)函数,时间参数times单位为ms。在NetTest.cs中编程,编译,然后在CANoe中执行。
5、执行Test Module
CANoe软件运行,点击Test Module的运行符号运行Test Module。

Test Module测试时类似于vTeststudio,有测试进度、测试case数量、测试结论。测试完成后可打开测试报告查看。
在这里插入图片描述
6、测试结果验证
查看.cs代码和读取的Excel文件,对比Test Module测试结果。
在这里插入图片描述
CANoe要实现对Excel文件的读写操作,必须使用.NET编程,通过封装的dll文件实现对Excel文件的读写操作。封装的dll文件不同于CAPL DLL,没有严格的命名规范,支持调用一些第三方的dll文件,用于实现CANoe不支持的一些功能。
对Excel文件的操作,常用的有三种方式:
1)using Excel = Microsoft.Office.Interop.Excel;
2)using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
3)using System.Data.OleDb;
封装成dll文件后,均可以实现对Excel文件的读写操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜉蚁撼树

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值