2009-05-04 53 views
3

我要讓CSV ::作家產生一個帶引號的字符串內換行:包含換行符使用Ruby CSV生成領域::作家

A,B,"Line 
Line",C 

因此該行會在Excel中顯示爲:

A,B,Line,C 
    Line 

是否有可能阻止CSV:Writer刪除換行符? 如果不是,將切換到FasterCSV解決這個問題?

回答

2

切換到FasterCSV將起作用。

由IRB會議:

require 'fastercsv' 
    FasterCSV.open("./testfile.csv", "w") do |csv| 
    csv << ["row", "of", "CSV\nCSV", "data"] 
    end 
1

貌似可以,如果你的行分隔符設置爲默認值以外的東西(這是\ r \ n或\ n)的。下面是一個例子(看看在調用CSV.parse_row指定的最後一個參數):

require 'csv' 

src = "a,test\ntest,b\ra,test\ntest,b,c" 
idx = 0 
begin 
    parsed = [] 
    parsed_cells, idx = CSV.parse_row(src, idx, parsed, ',', ?\r) 
    puts "Parsed #{ parsed_cells } cells." 
    p parsed 
end while parsed_cells > 0 

這裏是輸出:

Parsed 3 cells. 
["a", "test\ntest", "b"] 
Parsed 4 cells. 
["a", "test\ntest", "b", "c"] 

希望這有助於。