2011-07-19 21 views
6

我試圖將數據從我的模型導出到Excel電子表格。我已經看到3種方式如何將數據從模型導出到rubyonrails上的excel文件

  1. 使用電子表格的寶石,我不知道如何使用它, 的例子我看到的是寫入到本地文件,但我期待 生成一個文件,每次用戶點擊鏈接。
  2. 創建一個名爲導出方法,並運行查詢那裏,然後 製作export.xls文件在我的觀點,並認爲文件創建 表我想導出到Excel文件,但這種方法 不要」允許我創建多個工作表。
  3. 按照本教程http://oldwiki.rubyonrails.org/rails/pages/HowToExportToExcel, 但這裏並沒有顯示如何把鏈接放在視圖中,在我看來我缺少路由中的東西,我可以給github所以你可以看看我的代碼如果需要。
+0

如果你只需要將數據導出爲管理員來優化你可以使用這個gem https://github.com/igorkasyanchuk/rails_db excel或csv –

回答

7

我選擇的只是手動生成CSV文件。如:

File.new("data.csv", "w+") do |f| 
    @my_data.each do |data| 
    f << [data.title, data.body, ...].join(", ") + "\n" 
    end 
end 

CSV文件可以用excel或任何其他電子表格軟件打開。

1

我在最近的Rails項目中使用了writeexcel。一種快速簡單的方式直接導出excel文件 - 否CSV

要直接在您的意見中使用它,您必須註冊writeexcel作爲模板處理程序 - 這是我的gist所做的事情。然後創建一個新的模板,如export.xls.writeexcel,插入你的代碼,你很好去。

1

堵我自己的寶石在這裏,但你可能看看https://github.com/randym/acts_as_xlsx

它給你比的本地化,圖形,表格方面writeexcel或電子表格,並從axlsx寶石格式化多一點。

它還集成了活動記錄範圍和方法鏈。

博文有詳細的使用示例: 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

在RubyGems的: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 

以下以上兩個博客文章給出一個相當明確的步行通過。

相關問題