ruby 在 rails 导出一个 excel 数据文件

ruby on rails export an excel data file

我正在尝试设计一个网站,允许访问该网站的任何人下载 excel 文件。 excel 文件只存储我想公开的数据。我在 rails 上使用 ruby,想知道是否有一种简单的方法来存储我的 excel 电子表格(也许在资产文件夹中?)并在 link我的网页,点击后会下载电子表格。 谢谢!

您可以使用 CSV 导出(与 Excel 配合使用非常好),因为 Ruby 已在软件中很好地实现了 CSV 功能。

class UsersController < ApplicationController
  def index
    @users = User.all

    respond_to do |format|
      format.html
      format.csv { send_data @users.to_csv, filename: "users-#{Date.today}.csv" }
    end
  end
end

此外,您必须 require 在您的 config/application.rb:

require 'csv' 
require 'rails/all' # Or something resembling to this.

在您的模型中,将其添加到其中:

class User < ActiveRecord::Base
  def self.to_csv
    attributes = %w{id email name}

    CSV.generate(headers: true) do |csv|
      csv << attributes

      all.each do |user|
        csv << attributes.map{ |attr| user.send(attr) }
      end
    end
  end

  def name
    "#{first_name} #{last_name}"
  end
end

来源:GoRails (Video), RailsCasts

我通过查看相关 post 弄明白了: How to give the xls file link in Ruby on Rails? 并查看 hernanvicente

的回答