以下通常のUTF8のボム付きでCSVダウンロードのスクリプトを書いたのですが、shift-jisへの変換使用と思い変更したのですが、うまくうごきません。
教えて欲しいです。
$("#downloadBtn").click(function(){ var fileName = prompt('ファイル名を入力してください'); if (!fileName) { alert('ファイル名が入力されていません。'); return; } var header = ["NO","体温記入","受付日時","受付No","発行No","受付回数"]; var newList = list; newList.unshift(header) ; var bom = new Uint8Array([0xEF, 0xBB, 0xBF]); var csv_data = newList.map(function(l){return l.join(",")}).join("\r\n"); var blob = new Blob([bom, csv_data], { type: "text/csv" }); var url = (window.URL || window.webkitURL).createObjectURL(blob); var link = document.createElement("a"); link.download = fileName link.href = url link.click() });
上記を以下の形に変更したのですが、よく理解でいておりません。
$("#downloadBtn").click(function(){ var fileName = prompt('ファイル名を入力してください'); if (!fileName) { alert('ファイル名が入力されていません。'); return; } var header = ["NO","体温記入","受付日時","受付No","発行No","受付回数"]; var newList = list; newList.unshift(header) ; var bom = new Uint8Array([0xEF, 0xBB, 0xBF]); var csv_data = newList.map(function(l){return l.join(",")}).join("\r\n"); var blob = new Blob([bom, csv_data], { type: "text/csv" }); var shiftJisCodeList = Encoding.convert(csv_data, 'sjis', 'unicode'); const uInt8List = new Uint8Array(shiftJisCodeList); // csv書き込みの実装 const writeData = new Blob([bom, uInt8List], { type: 'text/csv' }); var link = document.createElement("a"); link.download = fileName link.href = url link.click() });
回答1件
あなたの回答
tips
プレビュー