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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

4回答

3092閲覧

CSV出力したあとについて・・・

probaseball

総合スコア113

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2015/07/07 02:45

ある配列をCSVに出力し、保存したところ、

CSVファイル-----------------------
[ア、1、2,3,4.・・・・・]
[イ、5、6,7,8、・・・・・]
[ウ、9,10、11、12、・・・・]
[エ、13、14、15、16]

こんな風になり、エクセルで開いてみても変わりませんでした。

CSVファイルをエクセルで開いた----
[ア、1、2,3,4.・・・・・]
[イ、5、6,7,8、・・・・・]
[ウ、9,10、11、12、・・・・]
[エ、13、14、15、16]

理想系は、

ア|1|2|3|4|・・・・・
イ|5|6|7|8|・・・・・
ウ|9|10|11|12|・・・・
エ|13|14|15|16|・・・・

にしたいです。

どうすればよろしいでしょうか

ソースは、

$m_array[]#上記の内容が入ってる2重配列

CSV.open("count.csv",'w') do |writer|

$m_array.each do |item|

writer << item

end

です

お願いしたします

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

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

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

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

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

wakuwaku

2015/07/07 10:12

カンマとピリオドと読点が混ざってるのは、すべて半角カンマと考えてよいのですか?
guest

回答4

0

ベストアンサー

カンマ区切りと TAB区切りとで出す例を作ってみました。

ruby

1# coding: utf-8 2require 'csv' 3 4array = [ 5 ['あ', 1, 2, 3], 6 ['い', 1, 2, 3], 7 ['う', 1, 2, 3] 8] 9 10file_path = '1.csv' 11CSV.open(file_path, 'wb') do |csv| 12 array.each do |rec| 13 csv << rec 14 end 15end 16 17file_path = '2.csv' 18CSV.open(file_path, 'wb', col_sep: "\t") do |csv| 19 array.each do |rec| 20 csv << rec 21 end 22end

実行例:

$ ls 1.rb $ ruby 1.rb $ ls 1.csv 1.rb 2.csv $ cat 1.csv あ,1,2,3 い,1,2,3 う,1,2,3 $ cat 2.csv あ 1 2 3 い 1 2 3 う 1 2 3

excel で読んだ時に日本語がばけてたら、次の記事を参照に対処をしてみてください。

投稿2015/07/19 09:21

katoy

総合スコア22324

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

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

0

フィールド区切り文字を","ではなく"|"にしたいという話であれば、
:col_sepをオプションで指定すればできると思います。

Ruby

1CSV.open("count.csv", 'w', col_sep: '|') do |writer| 2 $m_array.each do |item| 3 writer << item 4 end 5end

参照: http://docs.ruby-lang.org/ja/2.2.0/method/CSV/s/new.html
CSV.newのリファレンスですが、CSV.openでも同じオプションが使用できます。

投稿2015/07/19 06:41

raccy

総合スコア21733

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

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

0

Excelでデータを使う前提なら、タブ区切りのほうがすんなり扱えます。

投稿2015/07/07 04:49

maisumakun

総合スコア145121

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

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

0

CSVはそもそもカンマ区切りのフォーマットなので
開くとカンマ区切りの文字列が表示されるだけです。

で、EXCELで1データ1セル表示にするには
一番左の列を選択した状態で
[データ]-[区切り位置]でウィザード表示が表示されるので
カンマ区切りのデータとすると1データ1セルになります。

投稿2015/07/07 03:00

kutsulog

総合スコア985

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問