- ベストアンサー
excelのデータをtextareaへ貼り付け
はじめまして。早速ですが質問させて下さい。 エクセルのデータをHTML内のtextareaに貼り付ける時に、Alt+Enterの改行が入っているデータだとデータの前後に「"」がついてしまいます。 例えば、 「データ1 データ2」 というデータだと、 「"データ1 データ2"」 のように、改行はきちんとされるのですが、「"」がついてしまいます。 「"」が実際のデータに含まれている場合もあるので安易に「"」だけを取り除くこともできません。 インターネットでいろいろ調べたのですが、解決方法が見つからずこちらで質問をさせていただきました。 JavaScript等を使ってAlt+Enterの改行の場合は「"」をつけないようにする制御の方法がありましたら教えてください。 また、この事柄に関することを何か知っている方がいらっしゃいましたらアドバイス頂ければ幸いです。 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
他のアプリケーションでもそうなります。(そういう仕様になっていると思われます) 貼り付けられるアプリケーションにとっては、 すでに単なるテキストであって、ALT+ENTERの痕跡というのは、判別できないのじゃないかと思います。 必要な場合と必要でない場合があるとすると、 選択した範囲の最初と最後の「"」を取り除くようなボタンをつけるといいのかもしれません。 IEの場合であれば、クリップボードの内容が確認できるので、 onpaste イベントでクリップボードの内容を確認し、 最初と最後に「"」があって間に改行が有る場合、「"」を取り除くということはできると思います。
その他の回答 (1)
- galluda
- ベストアンサー率35% (440/1242)
がると申します。 CSV(カンマ区切り( ,によって区切られてるデータ))などによくある形式ですが(ちなみに、Excelを貼り付けると、TSV(タブ区切り)になります)。 ちょっと迂回などしつつ丁寧に説明を。 例えばCSVというのは、 111,222,333 とデータを区切ることで、「111と222と333」というデータをあらわします。 では「データの中に,があったら?」 という問題が発生しまして。その解決策として「1つのレコード全体を”で囲む」という手法があります。 つまり、例えば「111と222と3,333というデータ」の場合 111,222,"3,333" とやることで、データとしての,なのか、区切り文字としての,なのかを判断するわけです。 で。CSVもTSVも一緒ですが。改行コードというのは基本的に「次のデータに移ります」っていう制御文字です。 ですので、もし「データに改行がある」場合、それを「データとしての改行として取り扱う」ために、”を前後につけている、と。 ちと長くなりましたが、そんな背景があります。 一応、JavaScriptなどでも削除は可能かとおもいますが、ちと面倒なプログラムになることが予想されるので。 基本的には、formから呼ばれるCGIの類のほうできちんと処理されたほうがよろしいかと思います。
お礼
ご丁寧に説明して頂き、ありがとうございます。 確かにCSV等でのデータ取り扱いを考えると「"」は必要だと私も考えます。 今回はJavaScriptで文字列の先頭と最後尾に「"」があり、かつ、改行コードが含まれていた場合「"」を取り除くという処理を行うことにしました。 大変今後参考になるご意見を頂き、ありがとうございました。
お礼
確かにメモ帳等に貼り付けても「"」でくくられました。 仕様なのですね。 BLUEPIXY様が仰られたように、JavaScriptでエクセルデータの貼り付け処理を行う際に、 「最初と最後に「"」があって間に改行が有る場合「"」を取り除く」という処理を追加することで解決しました。 回答していただき、ありがとうございました。