CSV 剖析器
* 
PTC 對 ThingWorx CSV 剖析器延伸功能的支援已結束,且延伸功能不再可從 PTC 的下載入口網站下載。PTC 合作夥伴 免費 ThingWorx 小器具 | IQNOX 將為此延伸功能提供支援與未來維護版。如需詳細資訊,請參閱 PTC 的支援文章
逗號分隔值 (CSV) 檔案以純文字格式儲存表格資料 (數字與文字)。搭配使用 ThingWorx CSV 剖析器延伸功能,即可在 ThingWorx 內剖析及操控 CSV 檔案。此舉可供您匯入 CSV 資料,並將其儲存在 ThingWorx 中,或只將之視為資料儲存區,並從 CSV 資料萃取其他值。欲使用 CSV 剖析器延伸功能,請下載 CSVParser_Extensions.zip 並將其匯入 ThingWorx。該封裝會將下列項目匯入 ThingWorx:
CSVParserFunctions 資源
如需有關使用 CSV Parser 延伸功能的詳細資訊,請參閱此文章
* 
建議匯入檔案為 UTF-8 編碼。
服務
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);
這是否有幫助?