ruby csv将带逗号的字段理解为单独的列

时间:2016-10-06 08:39:15

标签: ruby-on-rails csv html-parsing comma

我尝试了可能的方法,但它总是因字符串和数字而失败。例子:

  

33,671,422,945.00

     

字,另一个字,ddd

csv将它们视为列而不是一列。 在我尝试生成csv的控制台中,我得到了这个:

  

\" 33,671,422,945.00 \"

csv中的

enter image description here

我尝试使用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

0 个答案:

没有答案