Excel-CSV のメール送付 (Table) SJIS

テーブル型データ項目の値を Excel CSV ファイル(TSV)に変換、添付してメールを送信します。

2016-11-21 © Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/email-sendexcelcsvsjis/

Configs
  • A: テーブル型データを選択してください *
  • B: 送出データの項目 ID をセットしてください (例 “0,1,5,3,6”) *
  • C: 宛先アドレスが格納されている文字列型データを選択してください *
  • D: 宛先名が格納されている文字列型データを選択してください *
  • E: メール件名が格納される文字列型データを選択してください *
  • F: Fromアドレスをセットしてください (例 “noreply@example.com”) *
  • G: Fromアドレス名をセットしてください (e.g. “経理ニュース”) *
  • H: ReplyToアドレスをセットしてください (例 “admin@example.com”) *
  • I: ReplyToアドレス名をセットしてください (e.g. “経理ニュース管理者”) *
  • J: メール本文が格納される文字列型データを選択してください *
  • K: 添付ファイル名が格納される文字列型データを選択してください *
Script
//// == 自動工程コンフィグの参照 / Config Retrieving ==
var dataIdA = configs.get( "conf_DataIdA" ); // (returns Number)
var colIds = configs.get( "conf_ColIds" ) + "";
var dataIdC = configs.get( "conf_DataIdC" ); // (returns Number)
var dataIdD = configs.get( "conf_DataIdD" ); // (returns Number)
var dataIdE = configs.get( "conf_DataIdE" ); // (returns Number)
var fromAddress = configs.get( "conf_FromAddress" );
var fromName = configs.get( "conf_FromName" );
var replyToAddress = configs.get( "conf_ReplyToAddress" );
var replyToName = configs.get( "conf_ReplyToName" );
var dataIdJ = configs.get( "conf_DataIdJ" ); // (returns Number)
var dataIdK = configs.get( "conf_DataIdK" ); // (returns Number)

//// == ワークフローデータの参照 / Data Retrieving ==
var myTable = data.get( dataIdA );
// myTable: com.questetra.bpms.core.model.formdata.ListArray
var toAddress = data.get( dataIdC ) + "";
var toName = data.get( dataIdD ) + "";
var subject = data.get( dataIdE ) + "";
var myBody = data.get( dataIdJ ) + "";
var myFileName = data.get( dataIdK ) + "";

//// == 演算 / Calculating ==
if( myTable !== null){
  var colIdArray = colIds.split(",");
  var numOfCols = colIdArray.length;
  var numOfRows = myTable.size() - 0; // 行(Tableの高さ)

  var myTsv = "";
  for( var i = 0; i < numOfRows; i++ ){
    for( var j = 0; j < numOfCols; j++ ){
      if( j != numOfCols - 1 ){
        myTsv += myTable.get(i, parseInt( colIdArray[j] ) ) + "\t";
      }else{
        myTsv += myTable.get(i, parseInt( colIdArray[j] ) ) + "\n";
      }
    }
  }

  myTsv = myTsv.replace( /,/g, "" );
  myTsv = myTsv.replace( /\t/g, "," );

  emailService.begin()
    .addTo( toAddress, toName )
    .setFrom( fromAddress, fromName )
    .setReplyTo( replyToAddress, replyToName )
    .setSubject( subject )
    .setBody( myBody )
    .addAttachment( myFileName, 'text/comma-separated-values; charset=Shift_JIS', myTsv)
    .send();
}

Download

Capture

Notes

  • “0,1,5,3,6” は、ID:0、ID:1、ID:5、ID:3、ID:6のカラム順に変更して CSV を生成させることを意味します
  • SJIS版は comma-separated-values です。スマートフォン表示やデータインポートの可用性が高まりますが、Comma情報が欠落します
%d人のブロガーが「いいね」をつけました。