csv文件读取驱动用户手册
一、 说明
本驱动实现从本地目录或者共享目录,读取某个csv文件中,统计获取计算、获得满足条件的单元格数据,并保存到eview变量的功能。
支持文件格式:csv,必须以逗号隔开各列
单元格的行从1开始,列从A开始。
支持如下直接获取方法:
- Cell方法:获取某个单元格值
- Now方法:获取当前日期功能
支持统计:
- Count方法:满足一定条件行数统计
- Sum方法:满足一定条件单元格数据求和
- Col方法:满足一定条件单元格数据取值
对于某一行进行满足条件的判断,支持以下一种或多种组合:
- Now方法:某列值满足当前日期
- MaxText方法:取最大文本内容,该条件需作为最后一个条件
- MaxInt方法:取最大整数值,该条件需作为最后一个条件
- MaxReal方法:取最大小数,该条件需作为最后一个条件
- 某列的值等于特定字符串
二、 驱动配置
在驱动表t_device_driver中,增加一个名称和模块名称均为exceldrv的驱动。
三、 设备配置
每个设备表示一个csv文件。
- 连接方式选择:other
- 连接参数:csv的目录路径,或者一个csv文件路径,或者多个csv文件路径(路径之间以;分隔)。建议使用绝对路径。
- 参数1:不需要配置
- 参数2:是否循环查找子目录。0表示不查找子目录,为空或其他值表示查找子目录
- 参数3:不需要配置
- 参数4:不需要配置

四、 变量配置
变量为sheet页内符合条件的列的值。
数据类型:根据变量获取到的数据的类型来设置。
变量名称:按照项目规范设计的字符串
设备:选择刚刚配置的设备
周期:根据需要而定,缺省为5秒
可控制:使能
变量地址:变量地址描述了如何取得或计算excel的值。变量地址由一部分或两部分组成(以分号隔开),第二部分可选,含义:在满足{条件表达式}的行中,获取或计算特定列的值:
{计算方法及参数};{条件表达式}
{计算方法及参数},支持如下计算方法:Cell、Now、Count、SUM方法。
这几个方法不需要条件:
- Cell(B13)。取得单元格B13的值,赋给Tag变量。单元格的行从1开始,列从A开始。该方法不支持满足条件表达式。
- Now(YYYY-MM-DD)。取得当前日期,以YYYY-MM-DD格式,赋给Tag变量。该方法不支持满足条件表达式。
- Count;C=Now(YYYY/M/D),I=OK。统计C列等于当前日期(YYYY/M/D,如2019/3/12格式),且I列值为字符串OK的行的个数。该方法不需要参数
- Col(J);C=Now(YYYY/M/D),C=MaxText()。获得统计C列等于当前日期(YYYY/M/D,如2019/3/12格式),且C列文本最大的一行,返回该行J列的值
- SUM(J);C=Now(YYYY/M/D),I=NG Product。统计C列等于当前日期(YYYY/M/D,如2019/3/12格式),且I列值为字符串给定的所有行的J列的累加和,并返回该和值
条件表达式支持多个条件,以逗号隔开。但具有统计功能的条件必须放在最后一个条件(包括:MaxText,MaxInt,MaxReal,MaxTime)。
- D=Now(YYYY/MM/DD)。D列等于现在时间(这里格式为:YYYY/MM/DD)的行。
- D=MaxText()。按文本方式取满足条件的最大一行。如有两行数据的D列值分别为:12:28:10和4:28:10,那么第二行满足条件,因为字符串4:28:10>12:28:10
- D=MaxInt()。按整数方式取满足条件的最大一行。如有两行数据的D列值分别为:12:28:10和4:28:10,那么第一行满足条件,因为转换为整数后第一行为12,第二行为4,字符串12>4
- D=MaxReal()。按整数方式取满足条件的最大一行。如有两行数据的D列值分别为:12:28:10和4:28:10,那么第一行满足条件,因为转换为小数后第一行为0,第二行为4.0,字符串12.0>4.0
- D=MaxTime(hh;mm;ss)。D列中满足时间hh:mm:ss要求的最大行。如有两行数据的D列值分别为:12:28:10和4:28:10,那么第一行满足条件,因为转换为时间格式后,第一行为12点钟,第二行为4点钟,12点晚于4点。
- 日期格式的说明
- csv文件被excel软件打开后,日期和时间字段会自动被转换,如2019-03-14可能会被转换为2019/3/14,请用记事本打开csv文件进行查看
- YYYY-MM-DD hh:mm:ss,表示 “年-月-日 时:分:秒”
- YYYY:表示4位数字的年份,如2017
- MM:2位数字(不足2位前面补0)的月份。如3月用03表示。
- M:1位或2位(不足2位前面不补0)的月份。如3月用3表示。
- DD:2位数字(不足2位前面补0)的日。如3日用03表示。
- D:1位或2位(不足2位前面不补0)的日。如3日用3表示。
- hh:2位数字(不足2位前面补0)的小时数。如3小时用03表示。
- h:1位或2位(不足2位前面不补0)的小时数。如3小时用3表示。
- mm:2位数字(不足2位前面补0)的分钟数。如3分用03表示。
- m:1位或2位(不足2位前面不补0)的分钟数。如3分用3表示。
- ss:2位数字(不足2位前面补0)的秒数。如3秒用03表示。
- s:1位或2位(不足2位前面不补0)的秒数。如3秒用3表示
- 示例:
- 2019-3-2 YYYY-M-D
- 2019-03-02 YYYY-MM-DD
- 3/2/2019 M/D/YYYY
- 03/02/2019 MM/DD/YYYY
- 12;23;5 h;m;s
- 12:23:05 hh:mm:ss
t_device_tag示例:
