コンバータ (TSV to Excel-CSV FILE)

文字型データ項目に格納されたタブ区切りテキスト(TSV)が、Excel 対応の CSV ファイルとしてファイル型データ項目に保存されます

2018 © Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/converter-tsvtoexcelcsv/

Configs
  • A: TSVデータが格納されている文字列型データを選択してください *
  • B: 抽出データのカラム ID をセットしてください (例 “0,1,5,3,6”) *
  • C: ファイル名が格納されている文字列型データを選択してください *
  • D: ファイル型データを選択してください(追加) *
Script
//////// START "main()" ////////
main();
function main(){

//// == Config Retrieving / 工程コンフィグの参照 ==
const dataIdA   = configs.get( "conf_DataIdA" ) + "";
const dataIdC   = configs.get( "conf_DataIdC" ) + "";
const dataIdD   = configs.get( "conf_DataIdD" ) + "";
const colIds    = configs.get( "conf_ColIds" )  + "";
const arrColIds = colIds.split(",");
// 'java.lang.String' (String Obj) to javascript primitive 'string'
// https://wiki.openjdk.java.net/display/Nashorn/Rhino+Migration+Guide#RhinoMigrationGuide-JavaScriptvsJavaStrings
// https://docs.oracle.com/javase/8/docs/technotes/guides/scripting/nashorn/api.html#sthref21


//// == Data Retrieving / ワークフローデータの参照 ==
let   myTsv     = engine.findDataByNumber( dataIdA );
if(   myTsv   !== null ){ myTsv += ""; }else{
  throw new Error( "Source TSV data is NULL" );
}
const arrMyTsv  = myTsv.split("\n");

let   fileName  = engine.findDataByNumber( dataIdC ) + ""; // NULL to "null"
let   myFiles   = engine.findDataByNumber( dataIdD ); // java.util.ArrayList
if( myFiles === null ){ myFiles = new java.util.ArrayList(); }


//// == Calculating / 演算 ==
let   newTsv    = "";
for( let i = 0; i < arrMyTsv.length; i++){
  let arrCellValues = arrMyTsv[i].split("\t");
  for( let j = 0; j < arrColIds.length; j++ ){
    newTsv += arrCellValues[ parseInt( arrColIds[j] ) ];
    if( j != arrColIds.length - 1 ){
      newTsv += "\t";
    }
  }
  if( i != arrMyTsv.length -1 ){
    newTsv += "\n";
  }
}

myFiles.add(
  new com.questetra.bpms.core.event.scripttask.NewQfile(
    fileName,
    "text/tab-separated-values; charset=x-UTF-16LE-BOM",
    newTsv
  )
);


//// == Data Updating / ワークフローデータへの代入 ==
engine.setDataByNumber( dataIdD, myFiles );

} //////// END "main()" ////////

Download

Capture

Notes

  • カラムの順序変更・フィルタ・重複掲載などの操作も可能です
  • ファイル実体は tab-separated-values (utf-16le-bom) です

See also

%d人のブロガーが「いいね」をつけました。