揮発性のメモ2

http://d.hatena.ne.jp/iww/

suicaの利用履歴をCSVファイルにしてダウンロードする

モバイルsuicaのページ
https://www.mobilesuica.com/

ここでモバイルsuicaの利用履歴を表示できる。 しかし、CSVファイルでダウンロードできない。
なので、CSVファイルとしてダウンロードできるようにするブックマークレットを作った。

javascript:(function(){
  /* 13番目のテーブルをCSV化する */
  var table = document.getElementsByTagName("table").item(12);
  var content = getCSVfromTable( table );
  var fileName = "suica-rireki.csv";
  downloadAsFile( fileName, content ); 


  /** ファイルとしてダウンロードさせる */
  function downloadAsFile( fileName, content ){
    var blob = new Blob([content]);
    var url = window.URL || window.webkitURL;
    var blobURL = url.createObjectURL(blob);

    var a = document.createElement('a');
    a.download = fileName;
    a.href = blobURL;
    a.click();
  }

  /** テーブルからcsvテキストを作成する */
  function getCSVfromTable( table ){
    var content = "";
    var ymax = table.rows.length;
    for( var y=0; y<table.rows.length; y++ ){
      var vlist = [];
      var xmax = table.rows[y].cells.length;
      for( var x=0; x<xmax; x++ ){
        var text = table.rows[y].cells[x].innerText;
        /* カンマ入りのデータだけ""でくくる */
        if( text.match(/,/) ) text = '"'+text+'"';
        vlist.push(text);
      }
      var vtext = vlist.join();
      content += vtext + "\n";
    }
    return content;
  }
})();

Chromeでなら動いた。


javascript - JavaScriptからファイルをダウンロードさせるのはどうしたら良いですか? - スタック・オーバーフロー
JavaScriptでtableタグをスクレイピングして値を取り出す方法 - 大人になったら肺呼吸