ラック
Home > ブログ > 記事 > 2018年1月 > JavaScriptでcsvファイルをダウンロードさせる

JavaScriptでcsvファイルをダウンロードさせる

カテゴリ: ホームページ,プログラム

ローカルで動作するWebページ(この時点で既におかしいですが)のJavaScriptでcsvファイルを出力したい、というシチュエーションになったのでメモしておきます。


//ダウンロードのメイン処理
function fileDownload() {
    var data = getData();
    var nowDate = getTime();
    var fileName = "file_" + nowDate + ".csv"; //file_yyyy-MM-dd_hhiiss.csvというファイル名

    var bom = new Uint8Array([0xEF, 0xBB, 0xBF]); //Excelで開くにはUTF-8 BOMありにする必要があるので、BOMありにする
    var blob = new Blob([bom, data], {"type": "text/csv"});

    if (window.navigator.msSaveBlob) {
        window.navigator.msSaveBlob(blob, fileName);
        window.navigator.msSaveOrOpenBlob(blob, fileName); //msSaveOrOpenBlobの場合はファイルを保存せずに開ける
    }
    else {
        document.getElementById("logDump").href = window.URL.createObjectURL(blob);
        document.getElementById("logDump").download = fileName;
    }
}
//データ取得
function getData() {
    //Processing Data Get...
    return data; //カンマ区切りと改行でcsvの形に整形された文字列を返す
}
//現在時刻を取得
function getTime() {
    var date = new Date(); 

    //年・月・日を取得する
    var year = date.getFullYear();
    var month = zeroPadding(date.getMonth() + 1);
    var day = zeroPadding(date.getDate());
    //時・分・秒を取得する
    var hour = zeroPadding(date.getHours());
    var minute = zeroPadding(date.getMinutes());
    var second = zeroPadding(date.getSeconds());

    //"yyyy-MM-dd_hhiiss"の形式に整形して返す
    var str = year + "-" + month + "-" + day + "_" + hour + minute + second;
    return str;
}
//頭に0を追加
function zeroPadding(str) {
    if (str < 10) {
        str = "0" + str;
    }
    return str;
}

こんな感じで、file_yyyy-MM-dd_hhiiss.csvというファイル名でcsvファイルをダウンロードするJSを作成しました。

参考

タグ: javascript

 



関連する記事一覧