htmlでtableを作成しています。
現在table2csvというプラグインをつかってtableの内容をutf-8でcsvダウンロードできたのですが
このままだとエクセルで開いた際文字化けしてしまうので
sjisかbom付きutf-8に変換したいです。
table2csv.jsのutf-8指定している部分をShift-JISに書き換えたのですがutf-8で
ダウンロードされます。
table2csv.js
/* global jQuery */ (function($) { var options = { /* action='downoad' options */ filename: 'table.csv', /* action='output' options */ appendTo: 'body', /* general options */ separator: ',', newline: '\n', quoteFields: true, excludeColumns: '', excludeRows: '' }; function quote(text) { return '"' + text.replace('"', '""') + '"'; } // taken from http://stackoverflow.com/questions/3665115/create-a-file-in-memory-for-user-to-download-not-through-server function download(filename, text) { var element = document.createElement('a'); element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); element.setAttribute('download', filename); element.style.display = 'none'; document.body.appendChild(element); element.click(); document.body.removeChild(element); } function convert(table) { var rows = table.find('tr').not(options.excludeRows); var numCols = rows.first().find("td,th").filter(":visible").not(options.excludeColumns).length; console.log(numCols) rows.each(function() { $(this).find("td,th").filter(":visible").not(options.excludeColumns) .each(function(i, col) { //col = $(col); output += options.quoteFields ? quote(col.text()) : col.text(); console.log(i); if(i != numCols-1) { output += options.separator; } else { output += options.newline; } }); }); return output; } $.fn.table2csv = function(action, opt) { if(typeof action === 'object') { opt = action; action = 'download'; } else if(action === undefined) { action = 'download'; } $.extend(options, opt); var table = this; // TODO use $.each switch(action) { case 'download': var csv = convert(table); download(options.filename, csv); break; case 'output': var csv = convert(table); $(options.appendTo).append($('<pre>').text(csv)); break; } return this; } }(jQuery));
top.html
<script type="text/javascript"> //csvダウンロード $(function(){ $('#downloadCsvBtn').click(function () { // CSV形式に整形 $("#table").table2csv('output', { appendTo: '#out' }); // ファイル名の定義(table.csv) $("#table").table2csv('output', { filename: 'table.csv' }); // CSV出力 $("#table").table2csv(); }); }); </script>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/08 05:52