1
我編寫了一個應用程序來將信息導出到Excel文件(XLS),但它不會導出所有行(11,444行),並且僅導出5,630行。不能導出超過5000行到Excel?
這是我的表:
##### I HAVE MORE THAN 5000 rows
|policies|
|id| |num_policy| |money|
1 12345 1000
2 45151 2000
3 15488 1300
... ... ...
這是我的控制器:(proyect /應用/控制器/ 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 /應用/視圖/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 /應用/視圖/ _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上檢查它。
我花了一個星期的時間搜索有關這個問題的信息。
似乎我需要添加別的東西。
有人可以幫助我嗎?
我認爲要記住,行的上限取決於Excel中的設置值(最大行數) – hek2mgl
如果導出爲CSV,您會得到11k條記錄嗎?也許這樣做? – bbozo
你確定該文件沒有每一行嗎?另外,看起來你渲染的部分不是'report',是'report_by_coupon',你能發佈那個嗎? –