使用Ruby CSV :: Writer生成包含换行符的字段

我想让CSV :: Writer在一个带引号的string中生成一个换行符:

A,B,"Line Line",C 

这样该行将显示在Excel中:

 A,B,Line,C Line 

是否有可能阻止CSV:作家剥离换行符? 如果没有,将切换到FasterCSV解决这个问题?

切换到FasterCSV将工作。

从IRB会议:

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

如果您将行分隔符设置为默认值(\ r \ n或\ n)之外的其他值,您就可以使用该function。 下面是一个例子(查看对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"] 

希望这可以帮助。