【发布时间】:2015-07-28 07:03:10
【问题描述】:
我正在尝试设计一个网站,允许任何访问该网站的人下载 Excel 文件。 excel 文件只存储我想公开的数据。我正在使用 ruby on rails,并且想知道是否有一种简单的方法来存储我的 excel 电子表格(可能在资产文件夹中?)并在我的网页上创建一个链接,单击该链接可以下载电子表格。 谢谢!
【问题讨论】:
标签: html ruby-on-rails export-to-excel
我正在尝试设计一个网站,允许任何访问该网站的人下载 Excel 文件。 excel 文件只存储我想公开的数据。我正在使用 ruby on rails,并且想知道是否有一种简单的方法来存储我的 excel 电子表格(可能在资产文件夹中?)并在我的网页上创建一个链接,单击该链接可以下载电子表格。 谢谢!
【问题讨论】:
标签: html ruby-on-rails export-to-excel
您可以使用 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
另外,你必须在你的 config/application.rb 中 require 它:
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
【讨论】:
assets 文件夹将仅用于样式表、javascript 和图像(如果适用)。我通过Rails的官方文档研究,它只支持我上面提到的。
我通过查看相关帖子找到了答案: How to give the xls file link in Ruby on Rails? 并查看 hernanvicente 的答案
【讨论】: