无法将超过5000行导出到Excel?

时间:2014-01-08 16:46:10

标签: ruby-on-rails ruby ruby-on-rails-2

我编写了一个将信息导出到Excel文件(XLS)的应用程序,但它没有导出我的所有行(11,444行),只导出5,630行。

这是我的表:

##### I HAVE MORE THAN 5000 rows
|policies|
   |id| |num_policy| |money| 
    1     12345       1000
    2     45151       2000
    3     15488       1300
    ...   ...         ...     

这是我的控制器:( proyect / app / controller / policy_controller.rb)

class PolicyController < ApplicationController

 def exportation

  @policies = Policy.paginate(:page => params[:page], :per_page => 10)
  @results= Policy.find(:all)

  respond_to do |format|
    format.html
    format.xls { send_data render_to_string(:partial=>"report"), :filename => "Report.xls" }
  end

以下是我的观点:( proyect / app / views / exportation.html.erb)

<% @policies.each do |policy| %>
  <%= policy.id %> 
  <%= policy.num_policy %> 
  <%= policy.money %> 
<% end %>

<%= link_to "Export Excel",{:controller=>"policy",:action=>"exportation", :format=>"xls",:page => params[:page] }  %>

以下是我的观点:( proyect / app / views / _report.erb)但导出的数量不超过500

<% @results.find_each(:batch_size => 8000) do |policy| %>
  <%= policy.id %> 
  <%= policy.num_policy %> 
  <%= policy.money %> 
<% end %>

这是我的日志:

Rendered policy/_report (64280.5ms)
Sending data Report.xls
Completed in 64394ms (View: 0, DB: 0) | 200 OK [http://0.0.0.0/policy/exportation?format=xls]

我试过了:

<% @results.each do |policy| %>
  <%= policy.id %> 
  <%= policy.num_policy %> 
  <%= policy.money %> 
<% end %>

并且还删除了:page => params[:page],但它无效。

 <%= link_to "Export Excel",{:controller=>"policy",:action=>"exportation", :format=>"xls"}  %>

并且还添加了一个计数以确保它有11,444行。

class PolicyController < ApplicationController
  def exportation
    @policies = Policy.count
    @results  = Policy.count
  end
end

SELECT count(*) AS count_all FROM `policies`
###   And I got 11 444 rows on both.

不是我的查询,因为我在MySQL上查了一下。

我花了一周时间搜索有关此问题的信息。

似乎我需要添加别的东西。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

做完最后一次测试后,我找到了答案并且很容易。

我使用的是LINUX UBUNTU 64位,它使用OPEN OFFICE(libre calc),这个程序只显示5000行。

解决方案是:

                 *** Open the file using Microsoft Excel on Windows. ***

谢谢你们的帮助。