J'utilise AXLSX pour générer des fichiers xlsx à partir d'une table affichée sur un site Web lorsqu'un utilisateur effectue une recherche à l'aide de Ransack. Mon problème est que les résultats sont paginés sur le site Web mais je veux que la feuille de calcul affiche l'ensemble des résultats plutôt que 15 enregistrements comme c'est actuellement le cas.Supprimer la pagination du jeu de résultats axlsx
Contrôleur
def index
@search = Campaign.search(params[:q])
@campaigns = @search.result.page(params[:page]||1)
respond_to do |format|
format.html
format.xlsx{ render xlsx: 'Campaigns' }
end
end
Lien
= link_to '<i class="glyphicon glyphicon-cloud-download"></i>'.html_safe, admin_campaigns_path(format: :xlsx), title: "Download Campaign XLS", rel: 'tooltip'
Campaigns.xlsx.axlsx
require 'axlsx'
xlsx_package = Axlsx::Package.new
wb = xlsx_package.workbook
wb.add_worksheet(name: "Campaigns") do |sheet|
style1 = sheet.styles.add_style(:bg_color => "EF0920", :fg_color => "FFFFFF", :b => "true")
sheet.add_row ["Header", "Header", "Header", "Header","Header","Header","Header","Header","Header","Header","Header","Header"], :style => style1
@campaigns.each do |campaign|
sheet.add_row [campaign.data,campaign.data,campaign.data,campaign.data,campaign.data,ccampaign.data,campaign.data,campaign.data,campaign.data,campaign.data,campaign.data]
end
end
Je pensais soit en changeant l'appel à des campagnes à autre chose et enlever la pagination, mais Je ne sais pas comment faire cela.