{"id":2567,"date":"2016-12-13T06:14:47","date_gmt":"2016-12-12T21:14:47","guid":{"rendered":"http:\/\/stuffy.dip.jp\/wordpress\/?p=2567"},"modified":"2017-05-29T16:15:40","modified_gmt":"2017-05-29T07:15:40","slug":"howto-load-csv-in-javascript-by-xmlhttprequest-method","status":"publish","type":"post","link":"https:\/\/www.stuffy.site\/wordpress\/?p=2567","title":{"rendered":"JavaScript\u3067CSV\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080"},"content":{"rendered":"<p>XMLHttpRequest \u3092\u4f7f\u3063\u3066\u5916\u90e8CSV\u30d5\u30a1\u30a4\u30eb\u30922\u6b21\u5143\u914d\u5217\u3068\u3057\u3066\u8aad\u307f\u8fbc\u307f\u3001\u30c6\u30fc\u30d6\u30eb\u3068\u3057\u3066\u51fa\u529b\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>.open \u30e1\u30bd\u30c3\u30c9\u306e\u7b2c1\u5f15\u6570\u306f\u3001HTTP\u30e1\u30bd\u30c3\u30c9\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u901a\u5e38\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u306b\u306fGET\u304c\u4f7f\u308f\u308c\u307e\u3059\u3002URL\u3067\u30ea\u30af\u30a8\u30b9\u30c8\u3059\u308b\u30ea\u30bd\u30fc\u30b9\u3092\u3059\u3079\u3066\u8868\u305b\u3066\u3001\u30ea\u30af\u30a8\u30b9\u30c8\u306b\u3088\u308a\u30b5\u30fc\u30d0\u30fc\u5074\u306b\u526f\u4f5c\u7528\u304c\u306a\u304f\u3001\u30b5\u30fc\u30d0\u30fc\u306e\u30ec\u30b9\u30dd\u30f3\u30b9\u304c\u30ad\u30e3\u30c3\u30b7\u30e5\u53ef\u80fd\u3067\u3042\u308c\u3070GET\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u4f7f\u3046\u306e\u304c\u9069\u5207\u3067\u3059\u3002POST\u306f\u30d5\u30a9\u30fc\u30e0\u30c7\u30fc\u30bf\u306e\u9001\u4fe1\u3092\u3059\u308b\u3068\u304d\u306b\u4f7f\u3044\u307e\u3059\u3002<br \/>\n\u7b2c2\u5f15\u6570\u306f\u3001\u30d5\u30a1\u30a4\u30eb\u306eURL\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<br \/>\n\u7b2c3\u5f15\u6570\u306f\u7701\u7565\u53ef\u80fd\u3067\u3059\u304c true \u3067\u975e\u540c\u671f\u901a\u4fe1\u3001false \u3067\u540c\u671f\u901a\u4fe1\u3092\u3057\u307e\u3059\u3002\u30ea\u30af\u30a8\u30b9\u30c8\u304c\u5b8c\u4e86\u3057\u3066\u3001\u6210\u529f\u3057\u305f\u5834\u5408 .responseText \u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u3063\u3066\u30c6\u30fc\u30d6\u30eb\u51fa\u529b\u95a2\u6570\u306b\u6e21\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>loadCSV.js<\/p>\n<pre class=\"brush: actionscript3; gutter: false; first-line: 1\"><span style=\"font-size: 10pt;\">window.onload = function() {\r\n  function getText(path) {\r\n\u00a0   var request = new XMLHttpRequest();<span style=\"font-size: small;\">\u00a0 \/\/ \u65b0\u3057\u3044\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u4f5c\u6210\u3059\u308b<\/span>\r\n\u00a0   request.open(\"GET\", path, true);    \/\/ \u53d6\u5f97\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u30d1\u30b9\u3092\u6307\u5b9a\u3059\u308b\r\n\u00a0   request.onreadystatechange = function() { \/\/ \u30a4\u30d9\u30f3\u30c8\u30ea\u30b9\u30ca\u30fc\u3092\u5b9a\u7fa9\r\n\u00a0\u00a0\u00a0   \/\/ \u30ea\u30af\u30a8\u30b9\u30c8\u304c\u5b8c\u4e86\u3057\u3001\u6210\u529f\u3057\u305f\u5834\u5408\u3002\r\n\u00a0\u00a0\u00a0   if (request.readyState === 4 &amp;&amp; request.status === 200) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0   var type = request.getResponseHeader(\"Content-Type\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0   if (type.match(\/^text\/))\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0   parseCSV(request.responseText); \/\/ \u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u95a2\u6570\u306b\u6e21\u3059\r\n\u00a0\u00a0\u00a0   }\r\n\u00a0   };\r\n\u00a0   request.send(null);\u3000\u3000\/\/ \u3053\u3053\u3067\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u9001\u4fe1\u3059\u308b\r\n  }\r\n  function parseCSV(str) {\r\n\u00a0   var CR = String.fromCharCode(13);\r\n\u00a0   var LF = String.fromCharCode(10);\r\n\u00a0   var csvData = new Array();\r\n\u00a0   var lines = str.split(LF);\r\n\u00a0   for (var i = 0; i &lt; lines.length; i++) {\r\n\u00a0\u00a0\u00a0   var cells = lines[i].split(\",\");\r\n\u00a0\u00a0   if( cells.length != 1 ) csvData.push(cells);\r\n\u00a0   }\r\n\u00a0   var result = \"&lt;table&gt;\";\r\n\u00a0   for (var i = 0; i &lt; csvData.length; i++) {\r\n\u00a0\u00a0\u00a0   result += \"&lt;tr&gt;\";\r\n\u00a0\u00a0\u00a0   for (var j = 0; j &lt; csvData[i].length; j++) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0   result += \"&lt;td&gt;\";\r\n\u00a0\u00a0\u00a0\u00a0\u00a0   result += csvData[i][j];\r\n\u00a0\u00a0\u00a0\u00a0\u00a0   result += \"&lt;\/td&gt;\";\r\n\u00a0\u00a0\u00a0   }\r\n\u00a0\u00a0\u00a0   result += \"&lt;\/tr&gt;\";\r\n\u00a0   }\r\n\u00a0   result += \"&lt;\/table&gt;\";\r\n\u00a0   document.getElementById(\"result\").innerHTML = result;\r\n  }\r\n  getText('.\/example.csv');\r\n}\r\n<\/span><\/pre>\n<pre class=\"brush: actionscript3; gutter: false; first-line: 1\"><span style=\"font-size: 10pt;\">&lt;html&gt;\r\n &lt;head&gt;\r\n &lt;meta http-equiv=\"Content-Type\" content=\"text\/html; charset=UTF-8\" \/&gt;\r\n &lt;script type=\"text\/javascript\" src=\".\/loadCSV.js\"&gt;&lt;\/script&gt;\r\n &lt;\/head&gt;\r\n &lt;body&gt;\r\n &lt;div id=\"result\"&gt;&lt;\/div&gt;\r\n &lt;\/body&gt;\r\n &lt;\/html&gt;<\/span><\/pre>\n<p>CSV\u30d5\u30a1\u30a4\u30eb\u306f\u6587\u5b57\u5316\u3051\u3057\u306a\u3044\u3088\u3046\u306b\u4fdd\u5b58\u5f62\u5f0f\u306b\u3088\u3063\u3066\u6587\u5b57\u30b3\u30fc\u30c9\u3092\u6307\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u53c2\u8003URL\uff1ahttp:\/\/blog.cles.jp\/item\/2691<\/p>\n","protected":false},"excerpt":{"rendered":"<p>XMLHttpRequest \u3092\u4f7f\u3063\u3066\u5916\u90e8CSV\u30d5\u30a1\u30a4\u30eb\u30922\u6b21\u5143\u914d\u5217\u3068\u3057\u3066\u8aad\u307f\u8fbc\u307f\u3001\u30c6\u30fc\u30d6\u30eb\u3068\u3057\u3066\u51fa\u529b\u3057\u3066\u3044\u307e\u3059\u3002 .open \u30e1\u30bd\u30c3\u30c9\u306e\u7b2c1\u5f15\u6570\u306f\u3001HTTP\u30e1\u30bd\u30c3\u30c9\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u901a\u5e38\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u306b\u306fGET\u304c\u4f7f\u308f\u308c\u307e\u3059\u3002 &hellip; <a href=\"https:\/\/www.stuffy.site\/wordpress\/?p=2567\" class=\"more-link\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"screen-reader-text\">JavaScript\u3067CSV\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[87,5],"tags":[],"class_list":["post-2567","post","type-post","status-publish","format-standard","hentry","category-javascript","category-software"],"_links":{"self":[{"href":"https:\/\/www.stuffy.site\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2567","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.stuffy.site\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.stuffy.site\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.stuffy.site\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.stuffy.site\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2567"}],"version-history":[{"count":14,"href":"https:\/\/www.stuffy.site\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2567\/revisions"}],"predecessor-version":[{"id":2581,"href":"https:\/\/www.stuffy.site\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2567\/revisions\/2581"}],"wp:attachment":[{"href":"https:\/\/www.stuffy.site\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2567"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.stuffy.site\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2567"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.stuffy.site\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2567"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}