我编写了一个将信息导出到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上查了一下。
我花了一周时间搜索有关此问题的信息。
似乎我需要添加别的东西。
有人可以帮我吗?
答案 0 :(得分:0)
做完最后一次测试后,我找到了答案并且很容易。
我使用的是LINUX UBUNTU 64位,它使用OPEN OFFICE(libre calc),这个程序只显示5000行。
解决方案是:
*** Open the file using Microsoft Excel on Windows. ***
谢谢你们的帮助。