RailsCastに続いてhttp://railscasts.com/episodes/362-exporting-csv-and-excel?autoplay=true私はxlsのダウンロードをフォーマットしようとしていますが、私の下のコードではxlsファイルはフォーマットされませんが、データはなくファイルは開かれていません。Ruby on Rails:XLSをダウンロードするときにフォーマットが機能しないのはなぜですか?
Mime_types.rb
:
Mime::Type.register "application/xls", :xls
Contacts_controller
:
def index
@contacts = Contact.where(user_id: session[:user_id])
respond_to do |format|
format.html
format.csv { send_data @contacts.to_csv }
format.xls
end
end
Contact
モデル:
def self.to_csv(options = {})
CSV.generate(options) do |csv|
csv << column_names
all.each do |contact|
csv << contact.attributes.values_at(*column_names)
end
end
end
Index.xls.erb
:
<table border="1">
<tr>
<th>Firstname</th>
<th>Surname</th>
<th>Email</th>
</tr>
<% @contacts.each do |contact| %>
<tr>
<td><%= contact.firstname %></td>
<td><%= contact.surname %></td>
<td><%= contact.email %></td>
</tr>
<% end %>
</table>
誰でもこの理由を教えてもらえますか?
私は、コントローラformat.xls { send_data @contacts.to_csv(col_sep: "\t") }
にラインformat.xls
を交換するとき、それはは、XLSファイルをダウンロードしますが書式なしでないことに注意してくださいことができます。
最初に、RailsCastのRyanはHTMLテーブルを使用してExcelファイルをフォーマットしていますが、XMLマークアップを試しましたが、その結果破損したファイルになります。書式設定の問題について説明していただきありがとうございますが、私は今のところ宝石を通じてこれをしたくありません。 –
@BenSmith:私は実際のキャストを見なかった、と認めます。 :)しかし、ビデオの下のテキストセクションでは、XMLバージョンのみです。 –
@BenSmith:「私は宝石は欲しくない」 - ええ、私はそれを完全に得ています。私たちは3年後も同様の偽のxlsで管理しました。しかし結局は、本物のものを実装しなければなりませんでした。 –