2010-03-29 13 views

risposta

8

Per Excel

  1. Ho usato FasterCSV e this post per generare file CSV che si aprono in Excel molto bene.
  2. È inoltre possibile creare una tabella HTML e utilizzare i file iqy per caricare Excel. Per fare ciò è possibile creare alcuni nuovi alias e quindi gestire i nuovi formati .iqy e .excel.

in config/inizializzatori/mime_types.rb

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

Poi nel controller di gestire l'iqy e formati .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 

Il modello per il formato excel dovrebbe solo essere un Tabella HTML con i dati in essa contenuti Il formato iqy esegue solo il rendering del testo, ora è necessario un modello di azione. Potresti volere un file application.excel.erb che non ha tutta la tua navigazione ecc., Così avrai una bella tabella html pulita. Vedi anche this KB article per ulteriori informazioni iqy.

Per PDF

  1. See this other SO question, il suggested plug-in sembra buono, ma io non l'ho usato.
  2. Ho giocato con, ma mai effettivamente utilizzato in produzione, prawn. Sembrava buono, ma non l'ho usato.

Per Doc

vorrei suggerire che hai appena bastone con semplice testo o RTF. Non sono a conoscenza di alcun plug-in per questo, ma probabilmente c'è qualcosa.

Un altro approccio

Ho usato JasperReports su progetti Java puro con grande successo. Sarebbe possibile utilizzare il prodotto JasperServer, JRuby, il proprio wrapper applicativo o il ponte ruby-java per generare gli output con Jasper. Vedi this post. Una volta che vai in Java, ottieni anche il meraviglioso JExcelApi.