質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
CSV

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

jQuery

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

Q&A

解決済

1回答

1611閲覧

jqueryでarrayをCSV出力したときに、カラムが分割されてしまう。何故でしょうか。

退会済みユーザー

退会済みユーザー

総合スコア0

CSV

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

jQuery

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

0グッド

1クリップ

投稿2020/09/22 07:46

編集2020/09/22 07:47

表題のとおりjqueryでarrayをCSV出力したときに、カラムが分割されてしまう。何故でしょうか。

以下array

Array(27) 1: "A" 2: "運転免許(普通),保険師,ホームヘルパー" 3: "" 4: "" 5: "災害ボランティアの経験,手話" 6: "" 7: "" length: 7

上記を以下の記述にてCSVへ出力すると、2行目と5行目が1つ1つのカラムになってしまいます。
これを1カラムでarrayと同じ形にしたいのですが、どこを修正すればできるかわからず、教えてほしいです。
宜しくお願いします。

以下記述内容

$("#downloadBtn").click(function(){ var header = ["血液型","資格免許","建築士(級)","その他ある場合記載","特技等","外国語通訳記載","その他ある場合記載"]; var newList = list; newList.unshift(header) ; var bom = new Uint8Array([0xEF, 0xBB, 0xBF]); var csv_data = newList.map(function(l){return l.join("\r\n")}).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 = "list.csv" link.href = url link.click() });

CSV出力結果

列1列2列3列4
特技外国語通訳記載その他のある場所記載
災害ブランティアの経験手話

以上です。宜しくお願いします。

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

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

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

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

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

kuma_kuma_

2020/09/22 16:38

Arrayに書かれている内容とソースで書かれているheaderの値は同じ事を意味していますか? Arrayの元になっているデータがどの様になっているかわからないと答えられません。 あえて答えるなら "運転免許(普通), 保険師, ホームヘルパー" "災害ボランティアの経験, 手話" 元々改行で入っていた可能性ぐらいです
退会済みユーザー

退会済みユーザー

2020/09/23 05:14

承知しました。確認してみます。
guest

回答1

0

ベストアンサー

カラムが分割されてしまう。何故でしょうか。

CSV は Comma-Separated Values の略です。日本語で表すと「カンマ区切りの値」という感じです。
大雑把に言うと、CSVでカンマは区切り記号に使われていますので、そこでセルが終わっている、と解釈されるのが理由です。


どこを修正すればできるかわからず

CSVでは、区切り記号を値に含むときはダブルクォーテーションで囲む、というルールがありますので、そのようにすればいいかと思います。

サンプル

js

1 var csv_data = newList.map(function(l){return l.map(function(c){return c.replace(/^(.*,.*)$/,'"$1"')}).join(",")}).join("\r\n");

参考:
CSVファイルの一般的書式 (RFC4180 日本語訳) - アルプス登山の玄関口・笠井家

投稿2020/09/23 07:44

編集2020/09/23 07:45
Lhankor_Mhy

総合スコア36960

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問