axlsx gemini başarıyla kurdum https://github.com/randym/axlsx İşte bu kod aracılığıyla bir excel dosyası oluşturmak için kullandığım denetleyici kodum.Raylar - axlsx gem kullanarak indirilebilir excel dosyasına ihracat kayıtları (MVC'yi koruyun)
wb = xlsx_package.workbook
wb.add_worksheet(name: "Buttons") do |sheet|
@buttons.each do |button|
sheet.add_row [button.name, button.category, button.price]
end
end
Ama ne yazık ki, bu çalışmaz:
Ama hiçbir şey yerine bana
class Coaches::PaymentsController < ApplicationController
before_filter :authenticate_coach!
# List all the payments
def index
if !params[:sort].blank?
@payments = Payment.includes(:member).paginate(:page => params[:page], :order => sort_column + " " + sort_direction)
else
@payments = Payment.includes(:member).paginate(:page => params[:page], :order=>'id desc')
end
respond_to do |format|
format.html
# Change format to xlsx
format.xlsx
format.json { render json: @payments }
end
end
end
İkincisi, ben bu kod ile deneyin bir hata başlatılmamış mim gösteren bu kodla olur. Herkes bana sadece görevimi yapmak için bir çözüm olmadığını söyler mi?
Ben öneri uyarınca üçüncü kez denediniz: Beni atılmış
def index
if !params[:sort].blank?
@payments = Payment.includes(:member).paginate(:page => params[:page], :order => sort_column + " " + sort_direction)
else
@payments = Payment.includes(:member).paginate(:page => params[:page], :order=>'id desc')
end
respond_to do |format|
format.xlsx do
p = Axlsx::Package.new
wb = p.workbook
wb.add_worksheet(name: "Your worksheet name") do |sheet|
sheet.add_row ["First Column", "Second", "Third"]
sheet.add_row [1, 2, 3]
sheet.add_row [' preserving whitespace']
end
send_data p.to_stream.read, type: "application/xlsx", filename: "filename.xlsx"
end
end
end
http 406 hatası
yığın almak için başka bir yol Teşekkürler Ammy, iyi çalışıyor. –
Bu, excel'e dışa aktarma için en iyi seçenektir, MVC –
Kaydedilmiş MIME zamanını çok fazla tutar. –