2013-05-08 64 views
0

我正在編寫一個程序,它創建一個csv-File。我一開始就有問題。 所以,我的代碼是FasterCSV問題(Ruby)

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列在輸出文件中,像水木清華此行| CSV | |數據。但是我得到的是一行A1中的「row,of,CSV,data」。我該如何解決這個問題?提前致謝! PS。我使用紅寶石1.8.7和FasterCSV 1.5.5

回答

1

我認爲你在Excel中打開它。 Excel可能不會將該文件檢測爲CSV文件。嘗試將數據導入到Excel工作簿中,而不是在Excel中打開該文件。

+0

謝謝,我確實如你所說,現在看起來好多了。但是,現在有文本進行一些引號「\t CSV \t數據\t排 」 \t「布拉布拉\t \t 」 – jenia 2013-05-08 09:53:34

2

您正在編碼CSV字符串兩次。這應該工作:

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 
+0

呀,那幫手,非常感謝! – jenia 2013-05-08 10:02:21