使用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"]
希望这可以帮助。