CSV 剖析器
逗號分隔值 (CSV) 檔案以純文字格式儲存表格資料 (數字與文字)。搭配使用 ThingWorx CSV 剖析器延伸功能,即可在 ThingWorx 內剖析及操控 CSV 檔案。此舉可供您匯入 CSV 資料,並將其儲存在 ThingWorx 中,或只將之視為資料儲存區,並從 CSV 資料萃取其他值。欲使用 CSV 剖析器延伸功能,請下載 CSVParser_Extensions.zip 並將其匯入 ThingWorx。該封裝會將下列項目匯入 ThingWorx:
• CSVParserFunctions 資源
如需有關使用 CSV Parser 延伸功能的詳細資訊,請參閱
此文章。
服務
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);