前提・実現したいこと
大学の講義の一環で売上予測ソフトを作成しています。その中でfirebaseにcsvの売り上げでーたをインポートするためにcsvをjsonデータに変換してローカルに保存しようとしているのですが、うまく行きません。
djangoを使って作成していていろんなサイトを参考にしながらやっています。
現在csvをjsonデータのオブジェクトに変換したのですが、ダウンロードの処置がうまく行きませんでした。
発生している問題・エラーメッセージ
link.href = URL.createObjectURL(blob);
以上の部分でエラーが起きています。
エラーの内容
Uncaught TypeError: URL.createObjectURL is not a function
エラーメッセージ
該当のソースコード
html
1 <div id="head"> 2 <h3>CSVファイルを選択してください</h3> 3 <input type="file" id="fire_reader" name="fire_reader" accept=".csv"> 4 <button type="button" onClick="json_save()" >売り上げデータをアップロード</button> 5 </div> 6 7
javascript
1 2 3var items = []; 4var jsonArray = []; 5var count = 0; 6var j = 0; 7var rele = []; 8var len = 0; 9var title = ''; 10 11 12 13 14$(function(){ 15 $("#fire_reader").on("change", function(){ 16 17 $("#tbl").html(""); 18 19 for( i = 0; i < this.files.length; i++ ) { 20 var reader = new FileReader(); 21 var rows = ""; 22 var cols = ""; 23 var tr = null; 24 $(reader).on("load", function () { 25 var data = this.result.replace(/\r/g,""); 26 rows = this.result.split("\n"); 27 $.each( rows, function( idx, value ){ 28 if ( value == "" ) { 29 return; 30 } 31 32 cols = value.split(","); 33 tr = $("<tr></tr>").appendTo("#tbl"); 34 $.each( cols, function( idx, value ){ 35 if(count == 1000){ 36 //// 各データをループ処理する 37 38 if(j <= len){ 39 //a_line[items[j]] = value; 40 rele.push(cols[j]); 41 j++; 42 43 44 } 45 46 if(j == len){ 47 48 for (var i = 0; i < len; i++) { 49 var a_line = new Object(); 50 } 51 for (var q = 0; q < len; q++) { 52 // 要素名:items[j] 53 // データ:csvArrayD[j] 54 55 a_line[items[q]] = rele[q]; 56 57 } 58 j = 0; 59 rele = []; 60 jsonArray.push(a_line); 61 62 63 } 64 65 } 66 // 項目行の作成 67 if(count < 999 ){ 68 len++; 69 items.push(value); 70 if (value == "小計"){ 71 count = 1000; 72 } 73 } 74 75 76 //以下の処理でCSVを表示できるようにしている。 77 switch( idx ) { 78 case 7: 79 case 8: 80 // 数値項目はカンマ編集で右寄せ 81 $("<td></td>").appendTo(tr) 82 .text(value.number_format()) 83 .css({"text-align": "right" }); 84 break; 85 86 default: 87 $("<td></td>").appendTo(tr) 88 .text(value) 89 90 91 92 93 } 94 95 } ) 96 } ) 97 }); 98 if (this.files[i]) { 99 reader.readAsText(this.files[i],"UTF-8"); 100 } 101 console.log(jsonArray); 102 } 103 }); 104}); 105 106function getday(){ 107 var today = new Date(); 108 var year = today.getFullYear(); 109 var month = (today.getMonth()+1); 110 var day = today.getDate(); 111 var time = today.getHours(); 112 var mi = today.getMinutes(); 113 var se = today.getSeconds(); 114 title = (year +""+month+"" + day+ "_"+ time +":"+ mi+ ":"+ se); 115 console.log(title); 116} 117 118 119function json_save(){ 120 getday(); 121 console.log(jsonArray); 122 let hugastring = JSON.stringify(jsonArray); 123 console.log(hugastring); 124 let blob = new Blob([hugastring],{type:"text/plan"}); 125 let link = document.createElement('a'); 126 link.href = URL.createObjectURL(blob); 127 link.download = title; 128 link.click(); 129} 130
回答1件
あなたの回答
tips
プレビュー