Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails如何将数据导出到excel_Ruby On Rails - Fatal编程技术网

Ruby on rails rails如何将数据导出到excel

Ruby on rails rails如何将数据导出到excel,ruby-on-rails,Ruby On Rails,我有如下的桌子 现在,我想将其导出到excel,这样我就可以在ms excel中打开它了,您可以使用gem 您可以使用来创建csv方法 def index @records = .... respond_to do |format| format.html # index.html.erb format.xml { render :xml => @records } format.csv { @records.to_csv } end end 或

我有如下的桌子

现在,我想将其导出到excel,这样我就可以在ms excel中打开它了,您可以使用gem

您可以使用
来创建csv
方法

def index
  @records = ....
  respond_to do |format|
    format.html # index.html.erb
    format.xml  { render :xml => @records }
    format.csv  { @records.to_csv }
  end
end
或者自定义输出并在控制器中使用
send_data
方法

format.csv do
  csv_string = FasterCSV.generate do |csv|
    # header row
    csv << ["id", "Column1", "Column1"]
    # data rows
    @records.each do |r|
      csv << [r.id, r.column1, r.column2]
    end
  # send it to the browser
  send_data csv_string,
            :type => 'text/csv; charset=iso-8859-1; header=present',
            :disposition => "attachment; filename=records.csv"
end
format.csv do
csv|U string=FasterCSV.generate do|csv|
#标题行
csv“附件;文件名=records.csv”
结束
您可以使用gem

您可以使用
来创建csv
方法

def index
  @records = ....
  respond_to do |format|
    format.html # index.html.erb
    format.xml  { render :xml => @records }
    format.csv  { @records.to_csv }
  end
end
或者自定义输出并在控制器中使用
send_data
方法

format.csv do
  csv_string = FasterCSV.generate do |csv|
    # header row
    csv << ["id", "Column1", "Column1"]
    # data rows
    @records.each do |r|
      csv << [r.id, r.column1, r.column2]
    end
  # send it to the browser
  send_data csv_string,
            :type => 'text/csv; charset=iso-8859-1; header=present',
            :disposition => "attachment; filename=records.csv"
end
format.csv do
csv|U string=FasterCSV.generate do|csv|
#标题行
csv“附件;文件名=records.csv”
结束
我建议使用成熟的。我在Rails 3上使用它,没有任何问题

整个过程将是:

book = Spreadsheet::Workbook.new
sheet = book.create_worksheet :name => 'Customers'
sheet.row(0).concat %w{Name Country Acknowlegement}
book.write '/path/to/output/excel-file.xls'
我建议使用成熟的。我在Rails 3上使用它,没有任何问题

整个过程将是:

book = Spreadsheet::Workbook.new
sheet = book.create_worksheet :name => 'Customers'
sheet.row(0).concat %w{Name Country Acknowlegement}
book.write '/path/to/output/excel-file.xls'

Ruby 1.9有一个内置的CSV库,它的API与FasterCSV gem非常相似(实际上,gem已经集成到Ruby中了!)

Ruby 1.9有一个内置的CSV库,其API与FasterCSV gem非常相似(实际上,gem已经集成到Ruby中!)

成熟版本号为0.x。hmmmmSpreadsheet对我来说也很好,直到工作表的大小变得太大。它仍然可以工作,但在db查询完成后创建XLS文件的速度非常慢。hmmmmSpreadsheet对我来说也很好,直到工作表的大小变得太大。它仍然可以工作,但在db查询完成后创建XLS文件的速度非常慢。