🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

ダウンロード

リモートシステムからローカルシステムへとデータを受信する事、もしくはそのようなデータ転送を行う事をダウンロードと呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1191閲覧

jQueryでのCSVダウンロード

zeijaku.net

総合スコア161

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

ダウンロード

リモートシステムからローカルシステムへとデータを受信する事、もしくはそのようなデータ転送を行う事をダウンロードと呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2019/12/03 16:11

ボタンを選択したらCSVとしてダウンロードしたいと思っていますがうまくいきません。
値としては問題ないと思っているのですが、ダウンロードしたファイルの中身がCSV形式にならない状態です。
どこがおかしいのかご指摘いただけないでしょうか?

HTML

1<html> 2<head> 3<title></title> 4<meta charset="utf-8"> 5<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> 6</head> 7<body> 8 9<form> 10<table> 11 <tr> 12 <td>A</td><td>B</td><td>C</td><td>D</td><td><input type="checkbox" name="11" value="りんご,1,200"></td> 13 </tr> 14 <tr> 15 <td>a</td><td>b</td><td>c</td><td>d</td><td><input type="checkbox" name="11" value="メロン,2,4000"></td> 16 </tr> 17 <tr> 18 <td>1</td><td>2</td><td>3</td><td>4</td><td><input type="checkbox" name="11" value="バナナ,4,500"></td> 19 </tr> 20</table> 21</form> 22 23<p class="btn">CSV Expoert</p> 24<a style="display:none;" id="downloader" href="#"></a> 25 26<script> 27$(function(){ 28$('.btn').on('click',function(){ 29 30var text = ''; 31/* 値取得 */ 32$("[name=11]:checked").each(function() { 33 text = text + $(this).val() + ','; 34}); 35 36 /* 配列 */ 37 var array_data = [text]; 38 /* 下記の配列ならうまくいく */ 39 // var array_data = [['りんご',1,200],['メロン',2,4000],['バナナ',4,500]]; 40 41 /* BOM用意 */ 42 var bom = new Uint8Array([0xEF, 0xBB, 0xBF]); 43 44 /* CSV用意 */ 45 var csv_data = array_data.map(function(l){return l.join(',')}).join('\r\n'); 46 47 var blob = new Blob([bom, csv_data], { type: 'text/csv' }); 48 49 var url = (window.URL || window.webkitURL).createObjectURL(blob); 50 51 var a = document.getElementById('downloader'); 52 a.download = 'data.csv'; 53 a.href = url; 54 55 /* ダウンロードクリック*/ 56 $('#downloader')[0].click(); 57 58 }); 59}); 60 61</script> 62 63</body> 64</html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下の部分

JavaScript

1 /* 配列 */ 2 var array_data = [text]; 3 /* 下記の配列ならうまくいく */ 4 // var array_data = [['りんご',1,200],['メロン',2,4000],['バナナ',4,500]];

ここでconsle.logしてみれば分かるように、textりんご,1,200,メロン,2,4000,バナナ,4,500,(文字列)、array_dataが["りんご,1,200,メロン,2,4000,バナナ,4,500,"](当然要素が文字列一つだけの配列)になってます。
うまくいっている配列と形式が違うことが確認できると思います。
以降の処理をそのまま活かすならば、うまくいっている配列と同じ形式になるようにしてください。

投稿2019/12/03 16:58

shinji709

総合スコア805

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zeijaku.net

2019/12/04 01:40

配列とテキストが混ざってしまっていたようです。 初歩的なところで思いっきり引っかかってしまっていたようです。 いくつか変更してチェックしたものだけCSVでダウンロード可能になりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問