前提・実現したいこと
JSを使ってCSVを取り込むプログラムを書きました。
このプログラムでCSVデータの取り込むことが出来たのですが、2点問題があります。
- csvデータを読み込む際に、文中や文末に発生した空の行を削除したい。
- CSVデータを読み込む際に、,,,,,, だけ発生している行を削除したい。
どうしても、CSVファイルを読み込み時に行う処理がわかりません。
ご教授頂けましたら幸いです。
該当のソースコード
Javascript
1jQuery.noConflict(); 2(function ($) { 3 "use strict"; 4 kintone.events.on(['app.record.index.show'], function (event) { 5 var appId = event.appId; 6 $('#selfile').bind('change', function (evt) { 7 var reader = new FileReader();; 8 var filedata = evt.target.files[0]; 9 reader.readAsText(filedata); 10 reader.onerror = function () { 11 alert('ファイル読み取りに失敗しました') 12 } 13 reader.onload = function (ev) { 14 if (!filedata.name.match('.csv$')) { 15 alert('CSVファイルを選択してください'); 16 return; 17 } else { 18 $('textarea[name=\"txt\"]').val(reader.result); 19 } 20 }; 21 }); 22 $('#post_btn').bind('click', function () { 23 var text_val = $('textarea[name=\"txt\"]').val(); 24 text_val = text_val.replace(/"/g, ""); 25 var jsonArray = csv2json(text_val.split('\n')); 26 27 var obj = []; 28 for (var i = 0; i < jsonArray.length; i++) { 29 obj[i] = { 30 updateKey: { 31 field: 'quote_number', 32 value: jsonArray[i]['test1'] 33 }, 34 record: { 35 '文字列': { 36 value: jsonArray[i]['test2'] 37 }, 38 'amount': { 39 value: jsonArray[i]['test3'] 40 }, 41 '数値A': { 42 value: jsonArray[i]['test4'] 43 }, 44 '数値B': { 45 value: jsonArray[i]['test5'] 46 }, 47 } 48 }; 49 var param = { 50 app: appId, 51 records: obj, 52 isGuest: false 53 }; 54 } 55 var obj_len = Object.keys(obj).length; 56 var spinner = new kintoneUIComponent.Spinner(); 57 var body = document.getElementsByTagName("BODY")[0]; 58 body.appendChild(spinner.render()); 59 if (window.confirm(obj_len + '件のデータを登録します。よろしいでしょうか?')) { 60 spinner.show(); 61 kintoneUtility.rest.upsertRecords(param).then(function (resp) { 62 spinner.hide(); 63 window.alert('取り込みが完了いたしました') 64 location.href = 'https://devowqnme.cybozu.com/k/1/'; 65 }).catch(function (error) { 66 console.log(error.message); 67 }) 68 } else { 69 window.alert('キャンセルされました'); 70 } 71 }); 72 function csv2json(csvArray) { 73 var jsonArray = []; 74 var items = csvArray[0].split(','); 75 for (var i = 1; i < csvArray.length; i++) { 76 var a_line = {}; 77 var csvArrayD = csvArray[i].split(','); 78 for (var j = 0; j < items.length; j++) { 79 a_line[items[j]] = csvArrayD[j]; 80 } 81 jsonArray.push(a_line); 82 } 83 return jsonArray; 84 } 85 }); 86})(jQuery);