使用Ruby on Rails导出到excel,pdf和doc

Sum*_*esh 5 ruby-on-rails

你能帮我通过rails应用程序将文件导出为ex​​cel,pdf和.doc格式吗?

dan*_*ich 8

对于Excel

  1. 我已经使用FasterCSV和这篇文章来生成在excel中打开的csv文件.
  2. 您还可以创建HTML表并使用iqy文件加载Excel.为此,您可以创建一些新别名,然后处理新的.iqy和.excel格式.

在config/initializers/mime_types.rb中

Mime::Type.register_alias "text/html", :excel
Mime::Type.register "text/x-ms-iqy", :iqy
Run Code Online (Sandbox Code Playgroud)

然后在您的控制器中处理.iqy和.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
Run Code Online (Sandbox Code Playgroud)

您的Excel格式模板应该只是一个包含数据的HTML表格.iqy格式只需渲染文本,现在需要动作模板.您可能需要一个没有所有导航等的application.excel.erb文件,因此您可以获得一个干净的html表.另请参阅此知识库文章以获取更多iqy信息.

对于PDF

  1. 看到这个问题,建议的插件看起来不错,但我还没有用过它.
  2. 我玩过,但从未真正用于生产,.它似乎很好,只是没有使用它.

对于Doc

我建议您坚持使用简单的文本或RTF.我不知道有任何插件,但可能有一些东西.

另一种方法

我在纯Java项目上使用了JasperReports并取得了巨大的成功.可以使用JasperServer产品,JRuby,您自己的应用程序包装器或ruby-java桥来使用Jasper生成输出.看这篇文章.一旦你加入Java,你也会获得精彩的JExcelApi.