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
我通过查看相关 post 弄明白了:
How to give the xls file link in Ruby on Rails?
并查看 hernanvicente
的回答
我正在尝试设计一个网站,允许访问该网站的任何人下载 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
我通过查看相关 post 弄明白了: How to give the xls file link in Ruby on Rails? 并查看 hernanvicente
的回答