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

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

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

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

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

2回答

7438閲覧

JavaScript で 読み込むCSV セル内で改行したい

__megumi

総合スコア1

CSV

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

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/10/02 03:20

編集2020/10/14 05:40

解決したい事

制作しているウェブサイトで、CSVをJavaScriptで読み込み、表を載せています。
編集は、CSVをExcelで開いてしています。
表の一部の項目だけ、情報量が多くなるので、セル内で改行しようと思いました。ですが、Excel内で改行できたとしてもウェブサイトには反映されず、解決方法が分かりません。

列1列2列3
No.1サツマイモ300円  15cm 4個入り

今はこのようになっていますが、
行いたい形は、例3のセル内を

300円
15cm
4個入り

の並びに改行したいです。

<script> function getCSVFile() { var xhr = new XMLHttpRequest(); xhr.onload = function() { createArray(xhr.responseText); }; xhr.open("get", "ここに表示させるCSV名", true); xhr.send(null); } getCSVFile(); function createXMLHttpRequest() { var XMLhttpObject = null; XMLhttpObject = new XMLHttpRequest(); return XMLhttpObject; } function createArray(csvData) { var tempArray = csvData.split("\r\n"); var csvArray = new Array(); var class_ = ''; var ul_elem = ''; var li_elem = ''; //行 for(var i = 0; i<tempArray.length;i++){ csvArray[i] = tempArray[i].split(","); } ul_elem += '<ul id="filter-menu">'; //ループ for(var y=0; y<csvArray.length-1; y++){ if(csvArray[y][1]=="New"){ class_ = 'new'; } //li要素 li_elem = '<li class='+class_+'>'; li_elem += '<div class="date"><p>'+csvArray[y][0]+'</p></div>'; if(csvArray[y][csvArray[y].length-1]!=""){ li_elem += "<div><p><a href='CSV/"+csvArray[y][csvArray[y].length-1]+"' download='"+csvArray[y][csvArray[y].length-1]+"'>"+csvArray[y][2]+"</a></div></p>" }else{ li_elem += '<div><p>'+csvArray[y][2]+'</p></div>'; } ul_elem += li_elem; li_elem = ''; console.log(csvArray[y][csvArray[y].length-1]); li_elem = "</li>"; ul_elem += li_elem; li_elem = ""; } ul_elem += "</ul>"; $("#tab-content").append(ul_elem); } window.onload = function(){ $('#filter-menu').children('li').hide().filter('.' + 'rikukyo').show(); } $(function(){ $(document).ready(function(){ "use strict"; $('.bxslider').bxSlider({ auto: true, autoControls: true, adaptiveHeight: true }); }); }); </script> <body> <div class="inner"> <div> <div id="new-topics"> <ul class="tab-menu flexbox"> <li class="selected"><a href="javascript:void(0);" class="rikukyo">新着</a></li> </ul> <div id="tab-content"></div> </div> </div> </body>

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

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

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

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

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

guest

回答2

0

tableで処理していますか?
replaceで[\r\n]+を"<br>"に変換してください
(改行ではなくセルを分けるほうが現実的だと思いますが)

投稿2020/10/02 03:23

yambejp

総合スコア114829

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

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

__megumi

2020/10/14 05:45

ありがとうございましす m(__)m 返事が遅くなってしまいすみません。 例の表の作り方が悪いのですが、本当は文章を載せています。 そのときに、文字が羅列してしまい読みにくいと思い、改行の策を考えています。 実際のプログラムを再投稿いたしました。 もしよろしければ、見ていただきアドバイスを頂ければと思っております。
__megumi

2020/10/14 06:35

回答ありがとうございます。 勉強してみようと思います!
guest

0

データ変換の場合は、変換前のデータの仕様を正確に把握することが重要です。
CSVファイルは、テキストエディタやバイナリビューアなどで、詳細を確認されておられますでしょうか?

私がバイナリビューアで確認した限りでは、Excel(2013)で出力したCSVファイルは、以下の仕様となっています。
・各行は、"\r\n"で分離。
・セル内の改行は、"\n"で出力。

これを前提として、処理を修正する場合、以下のようになるかと思います。

まず、"\r\n"での行分割が必要です。
var tempArray = csvData.split("\r\n");
上記にて、既に行われていますので、そのままといたします。
この時点で、tempArrayの各要素には、"\r\n"は残っていないことにご留意ください。

この処理の後、"\n"を"<br>"に変換します。

//行 コメントの直後で、行データをセルデータに分割されておられますが、この分割直前などが良いかと思います。

なお、上記の処理は、あくまで、Excelで出力したCSVファイル限定のものなので、ご注意ください。

任意のCSVファイルを取り扱う場合、行分離とセル内改行とで、同一の改行コードになっているほうが一般的です。
また、改行コードも、"\r\n"、"\n"、"\r"の3つの可能性があります。

そこまでの対応が必要でしたら、yambejpさんのご回答にあるように、ライブラリの導入をご検討ください。

投稿2020/10/17 00:11

YT0014

総合スコア1708

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問