Я пытаюсь экспортировать данные из моих моделей в таблицу Excel. Я видел 3 пути
Мой выбор - просто создать файл CSV вручную.Например:
File.new("data.csv", "w+") do |f| @my_data.each do |data| f << [data.title, data.body, ...].join(", ") + "\n" end end
CSV-файл можно открыть с помощью Excel или любой другой программы для работы с электронными таблицами.
Включаю здесь свой драгоценный камень, но вы можете взглянуть на https://github.com/randym/acts_as_xlsx
Это дает вам немного больше, чем writeexcel или электронную таблицу с точки зрения локализации, графиков, таблиц и форматирования из гема axlsx.
Он также интегрирован с активной областью видимости записи и цепями методов.
Blogpost с подробными примерами использования: http://axlsx.blogspot.com/
http://axlsx.blogspot.jp/2011/12/using-actsasxlsx-to-generate-excel-data.html
http://axlsx.blogspot.jp/2011/12/axlsx-making-excel-reports-with-ruby-on.html
На Github: https://github.com/randym/axlsx
На рубинах: https://rubygems.org/gems/axlsx
На Rubytookbox: https://www.ruby -toolbox.com / projects / axlsx
В основном это включает в себя настройку ответчика в вашем контроллере
format.xlsx { xlsx_package = Post.to_xlsx begin temp = Tempfile.new("posts.xlsx") xlsx_package.serialize temp.path send_file temp.path, :filename => "posts.xlsx", :type => "application/xlsx" ensure temp.close temp.unlink end }
и следующее на вашей модели
class Post < ActiveRecord::Base acts_as_xlsx
Два сообщения в блоге, приведенные выше, дают довольно четкий обзор.
Я использую writeexcel в моем последнем проекте Rails. Быстрый и простой в использовании способ экспорта файлов Excel напрямую - без CSV !
Чтобы использовать его непосредственно в ваших представлениях, вам необходимо зарегистрировать writeexcel в качестве обработчика шаблонов - это исключение, что делает моя gist . Затем создайте новый шаблон, например export.xls.writeexcel, вставьте свой код, и все готово.
export.xls.writeexcel