ThingWorx 擴充性 > 延伸功能 > CSV 剖析器
CSV 剖析器
逗號分隔值 (CSV) 檔案以純文字格式儲存表格資料 (數字與文字)。搭配使用 ThingWorx CSV 剖析器延伸功能,即可在 ThingWorx CSV 內剖析及操控 CSV 檔案。此舉可供您匯入 CSV 資料,並將其儲存在 ThingWorx 中,或只將之視為資料儲存區,並從 CSV 資料萃取其他值。欲使用 CSV 剖析器延伸功能,請下載 CSVParser_Extensions.zip 並匯入 ThingWorx。該封裝會將下列項目匯入 ThingWorx:
CSVParserFunctions 資源
* 
建議匯入檔案為 UTF-8 編碼。
* 
您可在下列位置找到 CSV Parser 延伸功能: 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);