我尝试了可能的方法,但它总是因字符串和数字而失败。例子:
33,671,422,945.00
字,另一个字,ddd
csv将它们视为列而不是一列。 在我尝试生成csv的控制台中,我得到了这个:
csv中的\" 33,671,422,945.00 \"
我尝试使用quote_char
但它没有工作,我也尝试将其包装在额外的""
中,但它在csv中产生了更多"
。
有什么想法吗?
我的红宝石代码:
def to_csv(list)
CSV.generate(headers: true) do |csv|
csv << csv_headers
list.each do |order|
csv << csv_values(order)
end
end
end
def exported_values
exported_attributes.map do |attr|
value = self.public_send(attr)
if currency_attributes.include?(attr)
'%.2f' % value
else
format_csv_value(value)
end
end.flatten
end
def format_csv_value(value)
case
when value.is_a?(Date) then value.strftime("%d/%m/%Y")
when true?(value) then 'Y'
when false?(value) then 'N'
else value
end
end