2010-03-29 11 views

Odpowiedz

8

Dla Excel

  1. Użyłem FasterCSV i this post wygenerować csv pliki otwierane w programie Excel bardzo dobrze.
  2. Można również utworzyć tabelę HTML i użyć plików iqy do załadowania programu Excel. Aby to zrobić, możesz utworzyć nowe aliasy, a następnie obsłużyć nowe formaty .iqy i .excel.

W config/inicjalizatory/mime_types.rb

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

Następnie w kontroler obsłużyć .iqy oraz formaty .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 

Szablon dla formatu Excel powinny być tylko Tabela HTML z danymi w niej zawartymi. Format iqy renderuje tekst, a teraz potrzebny jest szablon akcji. Możesz potrzebować pliku application.excel.erb, który nie ma całej twojej nawigacji itp., Aby uzyskać ładną czystą tablicę html. Zobacz także this KB article, aby uzyskać więcej informacji na temat iqy.

dla PDF

  1. See this other SO question The suggested plug-in wygląda dobrze, ale nie zostały wykorzystane.
  2. Grałem z, ale nigdy nie używano w produkcji, prawn. Wyglądało to dobrze, po prostu go nie użyłem.

Dla Doc

Sugerowałbym, że po prostu trzymać się z prostego tekstu lub RTF. Nie znam żadnych wtyczek do tego, ale prawdopodobnie coś jest.

Innym podejściem

Użyłem JasperReports na czystym projektów Java z wielkim sukcesem. Byłoby możliwe użycie produktu JasperServer, JRuby, własnego opakowania aplikacji lub mostu ruby-java, aby wygenerować wyjścia za pomocą Jaspera. Zobacz this post. Po przejściu części Java, otrzymasz także wspaniały JExcelApi.