CSV 解析器
逗号分隔值 (CSV) 文件以纯文本形式存储表格数据 (数字和文本)。使用 ThingWorx CSV 解析器扩展可在 ThingWorx 内解析和操控 CSV 文件。这样可供您导入 CSV 数据,并将其存储在 ThingWorx 中,或者仅将其视为数据存储,并从 CSV 数据中提取附加值。要使用 CSV 解析器扩展,请下载 CSVParser_Extensions.zip 并将其导入到 ThingWorx 中。该包将以下内容导入到 ThingWorx 中:
• CSVParserFunctions 资源
有关使用 CSV 解析器扩展的详细信息,请参阅
本文章。
服务
CSV 解析器功能位于具有下列服务的服务“片段”选项卡中:
• GetCSVFile:该服务从 HTTP GET 解析 CSV 文件 (输出结果为信息表)。它具有以下可配置参数:
◦ header (Http 标题)
◦ fieldDelimiter (字段分隔符)
◦ ignoreSSLErrors (忽略 SSL 认证错误)
◦ columnMappings (列映射)
◦ hasHeader (CSV 文件具有标题行)
◦ latitudeField (“纬度”字段索引)
◦ password (URL 密码)
◦ url (URL)
◦ longitudeField (“经度”字段索引)
◦ username (URL 用户名)
◦ stringDelimiter (字符串值分隔符)
◦ dateFormat (日期时间格式)
◦ dataShape (数据形状)
◦ timeout (可选超时,以秒为单位)
• GetOrderedFieldOutput:该服务将返回一个数据导出列表 (输出结果为信息表)。它具有以下可配置参数:
◦ orderedFieldList (信息表用作源)
◦ inputInfotable (将从输入表返回的字段的有序 CSV 列表)
• ParseCSVFile:
该服务会从文本解析 CSV 文件 (输出结果为信息表)。它具有以下可配置参数:
◦ content (内容)
◦ fieldDelimiter (字段分隔符)
◦ columnMappings (列映射)
◦ hasHeader (文件具有标题行)
◦ latitudeField (“纬度”字段索引)
◦ longitudeField (“经度”字段索引)
◦ stringDelimiter (字符串值分隔符)
◦ dateFormat (日期时间格式)
◦ dataShape (数据形状)
• ReadCSVFile:该服务会从信息库解析 CSV 文件 (输出结果为信息表)。它具有以下可配置参数:
◦ path (文件路径)
◦ fieldDelimiter (字段分隔符)
◦ columnMappings (列映射)
◦ hasHeader (文件具有标题行)
◦ latitudeField (“纬度”字段索引)
◦ longitudeField (“经度”字段索引)
◦ stringDelimiter (字符串值分隔符)
◦ dateFormat (日期时间格式)
◦ dataShape (数据形状)
• WriteCSVFile:该服务会将 CSV 文件写入到信息库。它具有以下可配置参数:
◦ data (信息表数据)
◦ path (文件路径)
◦ fileRepository (文件信息库名称)
◦ withHeader (将标题用作列名)
示例:ReadCSV
在以下示例中,数据形状被定义为具有两个字符串字段的 ds1。
var params = {
path: "test5.csv" /* STRING */,
columnMappings: undefined /* STRING */,
hasHeader: undefined /* BOOLEAN */,
longitudeField: undefined /* NUMBER */,
dateFormat: undefined /* STRING */,
fileRepository: "SystemRepository" /* THINGNAME */,
latitudeField: undefined /* NUMBER */,
fieldDelimiter: undefined /* STRING */,
stringDelimiter: undefined /* STRING */,
dataShape: "ds1" /* DATASHAPENAME */
};
// result: INFOTABLE
var result = Resources["CSVParserFunctions"].ReadCSVFile(params);
WriteCSV
var params = {
infoTableName : "InfoTable",
dataShapeName : "ds1"
};
// CreateInfoTableFromDataShape(infoTableName:STRING("InfoTable"), dataShapeName:STRING):INFOTABLE(ds1)
var result = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
var newRow = new Object();
newRow.firstfield = "FirstFieldValue";
newRow.secondfield = "SecondFieldValue";
//infotable1Object.rows[0] = newRow;
result.AddRow(newRow);
var params2 = {
path: "test4.csv" /* STRING */,
data: result /* INFOTABLE */,
fileRepository: "SystemRepository" /* THINGNAME */,
withHeader: undefined /* BOOLEAN */
};
// no return
var result = Resources["CSVParserFunctions"].WriteCSVFile(params2);