ThingWorx 扩展性 > 扩展 > CSV 解析器
CSV 解析器
逗号分隔值 (CSV) 文件以纯文本形式存储表格数据 (数字和文本)。使用 ThingWorx CSV 解析器扩展即可在 ThingWorx 中解析和操控 CSV 文件。这样可供您导入 CSV 数据,并将其存储在 ThingWorx 中,或者仅将其视为数据存储,并从 CSV 数据中提取附加值。要使用 CSV 解析器扩展,请下载 CSVParser_Extensions.zip 并导入到 ThingWorx。该包将以下内容导入到 ThingWorx 中:
CSVParserFunctions 资源
* 
建议导入文件采用 UTF-8 编码。
* 
“CSV 解析器”扩展可从 support.ptc.com 中的以下位置获取:“下载软件”>“订购或下载软件更新”> ThingWorx Foundation >“版本 <最新版本>”> ThingWorx CSV Parser >“最近的日期代码”> CSV-Parser-Extensions
服务
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);