다음 RailsCast http://railscasts.com/episodes/362-exporting-csv-and-excel?autoplay=true xls 다운로드를 포맷하려고하는데 아래 코드를 사용하여 xls 파일을 포맷하지 않지만 Excel이 열립니다 (데이터가없고 파일이 열리지 않음).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의 4:31 Ryan은 HTML 표를 사용하여 Excel 파일을 포맷하고 XML 마크 업을 시도했지만 파일이 손상되었습니다. 서식 문제에 대해 설명해 주셔서 감사합니다.하지만 지금은 보석을 통해이를 수행하고 싶지 않습니다. –
@BenSmith : 실제 캐스트를 보지 못했습니다. :) 그러나 아래 비디오의 텍스트 섹션에는 XML 버전 만 있습니다. –
@BenSmith : "나는 보석을 원하지 않는다"- 그래, 나는 그것을 완전히 얻는다. 우리는 비슷한 가짜 xls로 3 년간을 관리했습니다. 그러나 결국, 우리는 진짜를 구현해야했습니다. –