Ruby CSV用逗号分隔数字,而不是转义它

时间:2016-05-27 22:48:19

标签: ruby excel csv

当我在Ruby中生成csv文件时,Ruby CSV库会根据其数千个逗号分隔出数字。例如,5.00美元的数字留在他们自己的单元格中,而像257,000,415.81这样的数字将用双引号括起来,并将数千个逗号分成下一个单元格。例如(“$ 257 | 000 | 415.81”)。只要不是第一个值,csv就会正确解析数字。如何让csv库正确格式化同一单元格中的数字?我用来打开csv文件的程序是Microsoft Excel。

以下是文本在Excel中的显示方式的屏幕截图。

http://i.stack.imgur.com/8EMs0.png

以下是我希望文本看起来的屏幕截图。

http://i.stack.imgur.com/opjrR.png

以下是csv的代码。

<%= CSV.generate_line(["Balance"]).strip %>
 <% @accounts.each do |acct| %>
    <% row = [
      (number_to_currency acct.balance, :unit => "$")
    ] %>
 <%= CSV.generate_line(row).strip.html_safe %>
<% end %> 

1 个答案:

答案 0 :(得分:0)

这应该可以正确创建CSV文件:

CSV.open('filename.csv', 'w') do |csv|
  @accounts.each do |acct|
    csv << [ number_to_currency(acct.balance, unit: '$') ]
  end
end