
コンバータ (テーブル型データ to Excel-CSV ファイル)
Converter (Table type data to Excel-CSV File)
この工程は、テーブル型データ項目の値を Excel 対応の CSV として、ファイル型データ項目に格納します。ファイルは追加され、既存のファイルには影響を与えません。
Basic Configs
- 工程名
- メモ
Configs for this Auto Step
- Table_DataId
- A: 対象のテーブル型データ項目 *
- File_Name
- B: 保存ファイル名 *#{EL}
- File_DataId
- C: CSV を保存するファイル型データ項目 *
Capture

Notes
- ファイル実体は tab-separated-values (utf-16le-bom) です
- テーブルセルの入力値は、サブ項目(カラム)のデータ型に応じて、以下の形式の文字列に変換されます
- 文字型:(入力された文字列)
- 数値型:標準形式(小数点ピリオド、桁区切り文字なし)
- 選択型:選択肢ID
- 日付型:yyyy-mm-dd
See also
Script (click to open)
- 次のスクリプトが記述されている XML ファイルをダウンロードできます
- converter-table-to-excelcsv.xml (C) Questetra, Inc. (MIT License)
- Professional のワークフロー基盤では、ファイル内容を改変しオリジナルのアドオン自動工程として活用できます
function main() {
//// == Config Retrieving / 工程コンフィグの参照 ==
const tableId = configs.get("Table_DataId");
const filename = configs.get("File_Name");
const fileId = configs.get("File_DataId");
if (filename === "" || filename === null) {
throw new Error("File Name is blank");
}
//// == Data Retrieving / ワークフローデータの参照 ==
const myTable = engine.findDataByNumber(tableId);
// com.questetra.bpms.core.model.formdata.ListArray
let myFiles = engine.findDataByNumber(fileId); // java.util.ArrayList
if (myFiles === null) {
myFiles = new java.util.ArrayList();
}
let myTsv = "";
if (myTable !== null) {
myTsv = tableToTsv(myTable);
}
myFiles.add(
new com.questetra.bpms.core.event.scripttask.NewQfile(
filename,
"text/tab-separated-values; charset=UTF-16",
"x-UTF-16LE-BOM",
myTsv
)
);
//// == Data Updating / ワークフローデータへの代入 ==
engine.setDataByNumber(fileId, myFiles);
}
/**
* テーブル型データ を tsv に変換する
* @param {com.questetra.bpms.core.model.formdata.ListArray} myTable テーブル型データ
* @return {String} mytsv 変換後の tsv 形式の文字列
*/
function tableToTsv(myTable) {
//// == Calculating / 演算 ==
const numOfRows = myTable.size() - 0; // 行(Tableの高さ)
const numOfCols = myTable.getRow(0).size(); // 列(Tableの幅)
let mytsv = "";
for (let i = 0; i < numOfRows; i++) {
for (let j = 0; j < numOfCols; j++) {
mytsv += myTable.get(i, j);
if (j != numOfCols - 1) {
mytsv += "\t";
}
}
if (i != numOfRows - 1) {
mytsv += "\n";
}
}
return mytsv;
}