2010-03-29 42 views
5

Bạn có thể giúp tôi trong việc xuất tệp sang định dạng excel, pdf và .doc thông qua ứng dụng đường ray không ??xuất sang excel, pdf và doc bằng Ruby on Rails

+0

Đằng tất cả, bạn cần Dịch vụ báo cáo, thực hiện tất cả những điều đó .... trừ khi bạn có thể tìm thấy giải pháp báo cáo hoạt động với RoR. – slugster

Trả lời

8

Đối với Excel

  1. Tôi đã sử dụng FasterCSV và this post để tạo ra file csv mở trong excel rất tốt.
  2. Bạn cũng có thể tạo bảng HTML và sử dụng các tệp iqy để tải excel. Để làm điều này, bạn có thể tạo một số bí danh mới và sau đó xử lý các định dạng .iqy và .excel mới.

Trong config/initializers/mime_types.rb

Mime::Type.register_alias "text/html", :excel 
Mime::Type.register "text/x-ms-iqy", :iqy 

Sau đó, trong điều khiển của bạn xử lý các .iqy và các định dạng .excel

respond_to do |format| 
    format.html 
    format.excel 
    format.iqy { 
    text = "WEB\n1\n%s" % URL_FOR_DATA_VIA_GET, :format => :excel) 
    render :text => text 
    } 
end 

Mẫu của bạn cho định dạng excel chỉ nên là một Bảng HTML với dữ liệu trong đó. Định dạng iqy chỉ hiển thị văn bản, bây giờ là mẫu hành động cần thiết. Bạn có thể muốn một tệp application.excel.erb không có tất cả điều hướng của bạn, do đó, bạn sẽ có được một bảng html sạch đẹp. Ngoài ra, hãy xem this KB article để biết thêm thông tin về iqy.

Đối với PDF

  1. See this other SO question, các suggested plug-in có vẻ tốt, nhưng tôi đã không sử dụng nó.
  2. Tôi đã chơi với, nhưng không bao giờ thực sự được sử dụng trong sản xuất, prawn. Nó có vẻ tốt, chỉ cần không sử dụng nó.

Đối Doc

tôi sẽ đề nghị rằng bạn chỉ gắn bó với văn bản đơn giản hoặc RTF. Tôi không biết bất kỳ plug-in nào cho việc này, nhưng có lẽ có điều gì đó.

cách tiếp cận khác

Tôi đã sử dụng JasperReports vào các dự án Java tinh khiết với thành công rực rỡ. Bạn có thể sử dụng sản phẩm JasperServer, JRuby, trình bao bọc ứng dụng của riêng bạn hoặc cầu ruby-java để tạo ra các kết quả đầu ra với Jasper. Xem this post. Một khi bạn đi một phần Java, bạn cũng có được JExcelApi tuyệt vời.