Rails3中导出CSV文件

ruby rails csv it

Published atZernel's Blog

因为项目需要,今天看了一下关于导出CSV文件的做法,从 Ruby 1.9.2 开始,fastercsv作为标准库整合到 Ruby 之中,我们可以直接通过直接 require 使用。下面例子是要把项目中的auctions数据导出来,具体做法参考如下:

View


<%= link_to 'Export to CSV', auctions_path(format: 'csv') %>

Controller


require 'csv'

class AuctionsController < ApplicationController
  def index
    ...
    @auctions = ...

    respond_to do |format|
      format.csv {
        send_data(csv_content_for(@auctions),
                  type: "text/csv;charset=utf-8; header=present",
                  filename: "Report_auctions_#{Time.now.strftime("%Y%m%d")}.csv")
      }
      format.html
    end
  end

  ...

  private
  def csv_content_for(auctions)
    CSV.generate do |csv|
      csv << ["VIN", "YEAR", "MAKE", "MODEL", "NAME", "STATUS"]

      auctions.each do |auction|
        vehicle = auction.vehicle
        csv << [vehicle.vin, vehicle.year, vehicle.make, vehicle.model, vehicle.user.name, auction.auction_status.name]
      end
    end
  end
end

在generate CSV的时候每插入一个数组都会自动转换成以逗号分隔的字符串并在后面自动加上换行符,如下:


  ➜  ~  irb
  1.9.3-p0 :001 > require 'csv'
   => true 
  1.9.3-p0 :002 > ['a', 'b', 'c'].to_csv
   => "a,b,c\n" 

因而每个数组为一行,到时在Excel只要导入的时候以逗号作为分隔符就可以排出自己想要的效果了:)


via: http://zernel.github.com/rails/2012/06/12/import-to-csv-by-ruby/


相关推荐

  • SMT行业中如何使用Gerber文件导出元件坐标 Gerber文件的应用SMT生产线中的大多数加工设备均为数控设备。它们编程所需要的大多数特征数据均可从CAD设计系统中得到。如何在CAD设计系统和SMT自动化加工设备之间建立有机的联系和共享,正是我们所要解决的问题。本文介绍了从Gerber
  • 关于delphi的xml文件导出 1、分析:a、就开户申请来说,最大的问题就是字段多,对xml报文导出也是一样。一个客户的信息的字段都将近100个字段,一个客户根据客户类型、申请的交易所的不同,又会生成不同的多条记录。所以,正确的处理每个字段,以及根据相关字段输出正确的报文
  • 云OS 联系人和其它文件导入/导出功能介绍 云OS联系人和其它文件导入/导出功能介绍联系人导入/导出First,我们来进行联系人的导入操作。首先打开联系人后就可以看到联系人导入界面(手机里木有联系人),云手机给咱提供了多种导入方式(见下图)。*从其他手机导入第一步,启动云助手(木有安
  • potplayer 配置文件导入导出教程 potplayer无论是播放功能还是自定义功能都非常强大,我们会按照自己的使用习惯来设置好potplayer,但是重装电脑后或者软件卸载完全后,就得重新设置,非常麻烦,现在我们来讲讲怎么:一次设置,终身受用!导出配置:单击播放器左上角的po
  • 出包王女:陪冲澡!梦梦视频文件导发绅耆关心注视 ??相信良多著名人物都以前看过《出包王女》这部作品吧。然后续的系列《出包王女Darkness》更是一再地按F5许多人对于福利的界说。最近几天,JUMP官方推出了可以360度切换视角的“梦梦陪你冲澡”视频文件。在这段视频文件之中,我们看见女副
  • mysql数据库数据录入,导出中文乱码问题解决 mysql数据库数据录入,导出中文乱码问题解决要使得mysql数据库中和导出显示数据为中文1、mysql的配置,在安装好mysql后,配置时将字符编码改为UTF-8,即选中第二项。对具体的数据库中的每一个表的编码改为UTF-82、Apach
  • 用PB写的将XLS文件的数据导入到DB数据库中的程序 N年前,写过一个程序。程序的目的是将EXCEL里对应的记录导入到DB数据库中。程序用PB编写,顺便还写了注册的程序,以用于防止非法使用软件。我用它挣了1500元钱,在此保存一份程序代码,用来日后参考。---------博主应用程序bxcx的
  • ASP.NET 数据导出到excel文件给客户端下载的几种方法 数据导出到excel文件给客户端下载的几种方法:方法一:导出到csv文件,存放在服务器端任一路径,然后给客户下载优点:1、可以进行身份认证后给客户下载,如果放到非web目录就没有对应的url,客户无法随时下载。2、也是因为生成了文件,所以占
  • datagrid数据导出到excel文件给客户端下载的几种方法 方法一:导出到csv文件,存放在服务器端任一路径,然后给客户下载优点:1、可以进行身份认证后给客户下载,如果放到非Web目录就没有对应的url,客户无法随时下载。2、也是因为生成了文件,所以占用了服务器的空间,但是可以把文件名存放到数据库,
  • MATLAB中文件的读写和数据的导入导出 MATLAB中文件的读写和数据的导入导出(转载)|字号订阅介绍MATLAB中文件的读写和数据的导入导出。13.1数据基本操作  本节介绍基本的数据操作,包括工作区的保存、导入和文件打开。13.1.1文件的存储  MATLAB支持工作区的保存
  • oracle中导入导出dmp数据库文件语句使用 Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。利用这个功能可以构建两个相同的数据库,一个用
  • 会声会影中导入MP4格式的文件后导出mp4格式软件自动关闭退出 把MP4格式的文件一导入会声会影后,导出mp4格式的文件,会声会影就自动关闭了,不知道是怎么回事,怎么解决这个问题呢!网络搜索到一个解决办法,此方法本人还没来得及试验,如果有解决成功的,分享给大家。把暴风影音卸载干净,用POTPLAYER。

你的评论

就没有什么想说的吗?

最新博客

关于我们 加入传客 媒体报道 帮助中心 传客活动 免责声明 联系我们 移动版 移动应用

©2017传客网    琼ICP备15003173号-2    

本站部分文章来源于互联网,版权归属于原作者。
本站所有转载文章言论不代表本站观点,如是侵犯了原作者的权利请发邮件联系站长(weishubao@126.com),我们收到后立即删除。
站内所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

X