タブ区切りの値のINSERT文作成ツール

ショコラ
ショコラ

タブ区切りの値のINSERT文作成ツール

タブ区切りの値のINSERT文作成ツールを作りました。
使い方
①テーブル名を入力します。
②カラムをカンマ区切りで入力します。
③値をタブ区切りで入力します。
④「INSERT文をクリップボードにコピー」ボタンを押します。
→インサート文がクリップボードにコピーされ、a.sqlのファイルにインサート文書かれます。

もっさん先輩
もっさん先輩

スクリプトの説明

<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta charset="utf-8">
<title>タブ区切りの値のINSERT文作成ツール</title>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.3.1/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/fomantic-ui@2.8.8/dist/semantic.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/fomantic-ui@2.8.8/dist/semantic.min.css">
<hta:application id="hta"/>
<script>
String.prototype.trim = function(){
 return this.replace(/^\s+|\s+$/g,'');
};

$(function(){

  // ウィンドウをリサイズ
  window.resizeTo(800,450);

  $("#exec").on("click",function(){
  
    cols = [];
    all = $('#cols').val().split(/\r\n|\r|\n/);
    for (i=0; i<all.length; i++) {
      line = all[i];
      if ('' != line) {
        line = line.trim();
        s = line;
        cols.push(s);
      }
    }

    vals = [];
    all = $('#vals').val().split(/\r\n|\r|\n/);
    for (i=0; i<all.length; i++) {
      line = all[i];
      if ('' != line) {
        line = line.trim();
        s = "('" + line.replace(/\t/g,"','") + "')";
        s = s.replace(/''/g,'NULL');
        vals.push(s);
      }
    }
    
    output = 'INSERT INTO ' + $('#table').val() + ' (' + cols.join(' ') + ') VALUES \n' +  vals.join(',\r\n') + ';\r\n';
    clipboardData.setData('Text',output);

    // ファイルにも保存できます。
    var fs = new ActiveXObject('Scripting.FileSystemObject');
    fp = fs.OpenTextFile('./a.sql',8,true);
    fp.Write(output);
    fp.close();
  });
});
</script>
</head>
<body>
<form class="ui form">
  <div class="ui basic segment">
    <div class="ui pointing below label">
      INSERT INTO
    </div>
    <input type="text" id="table" placeholder="テーブル名">
    <div class="ui pointing below label">
      COLUMNS
    </div>
    <textarea id="cols" rows="3" class="textarea" placeholder="カラムをカンマ区切りで入力"></textarea>
    <div class="ui pointing below label">
      VALUES
    </div>
    <textarea id="vals" rows="5" class="textarea" placeholder="値をタブ区切りで入力"></textarea>
    <button type="button" class="ui fluid green button" id="exec">INSERT文をクリップボードにコピー</button>
  </div>
</form>
</body>
</html>

以上

Scroll to Top