/ / FasterCSV(Ruby)の問題 - ruby​​、fastercsv

FasterCSV(Ruby)の問題 - ruby​​、fastercsv

私はcsv-Fileを作成するプログラムを書いています。最初は問題があります。 だから、私のコードは

  def create_csv
destfile = Rails.root.join("public", "reports", "statistic_csv#{id}.csv")
csv_string = FasterCSV.generate do |out|
out << ["row", "of", "CSV", "data"]
end
FasterCSV.open(destfile, "w") do |csv|
csv << csv_string
end
end

私は思った、私は出力の4つの列を取得しますファイル、この行のようなsmth | of | csv | data。しかし、私が得るのは、1つのセルA1に「行、列、CSV、データ」です。どうすれば問題を解決できますか?前もって感謝します! PS。私は、ルビー1.8.7とFasterCSV 1.5.5を使用します

回答:

回答№1は2

CSV文字列を2回エンコードしています。これはうまくいくはずです:

def create_csv
destfile = Rails.root.join("public", "reports", "statistic_csv#{id}.csv")
FasterCSV.open(destfile, "wb") do |csv|
csv << ["row", "of", "CSV", "data"]
end
end

カスタム列セパレータを指定することもできます。

FasterCSV.open(destfile, "wb", { :col_sep => "|" }) do |csv|
# ...
end

回答№2の場合は1

Excelでファイルを開くことはできませんが、Excelでファイルを検出していない可能性があります。Excelでファイルを開くのではなく、Excelブックにデータをインポートしてみてください。