1、CANoe读写Excel文件操作:

针对所有可用Excel打开的文件格式,目前CANoe仅支持.csv(文本文件)文件的读写,无法用CAPL编程实现对Excel文件的读写,.xlsx文件和.xls文件无法进行读写。可以在CANoe下创建.NET测试节点,实现对Excel文件的读写操作。

python 读sas Python读sas后缀文件_Test


如图所示,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代码里,列表的第一行含有版本信息,必须按照以下格式来定义(用户无需修改)。

python 读sas Python读sas后缀文件_Test_02

CANoe创建测试节点,通过调用C#封装的dll文件实现读写Excel文件

1、C#封装dll文件

使用C#封装一个.dll文件,实现对Excel文件的读写操作。

在C#中创建一个.NET framework工程,封装一个dll文件,实现Excel文件的打开、读取数据等功能。具体封装.dll的方法此处不做介绍,具体封装读写Excel的操作此处也不做介绍。

python 读sas Python读sas后缀文件_python 读sas_03


2、CANoe添加节点

在CANoe软件的Simulation setup中,在CAN1 Net work中添加节点。

右键→选择Insert.NET Test Module,通过.NET编程实现对Excel文件的操作。

python 读sas Python读sas后缀文件_python 读sas_04


3、配置节点

配置创建的.NET Test Module选中测试节点,右键→Configuration,在配置界面对.NET Test Module进行重命名,并且创建Test script,比如NetTest.cs。

python 读sas Python读sas后缀文件_microsoft_05


4、打开.cs编程

双击创建的Test Module,打开NetTest.cs文件

python 读sas Python读sas后缀文件_Test_06


在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数量、测试结论。测试完成后可打开测试报告查看。

python 读sas Python读sas后缀文件_python 读sas_07


6、测试结果验证

查看.cs代码和读取的Excel文件,对比Test Module测试结果。

python 读sas Python读sas后缀文件_microsoft_08


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文件的读写操作。