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

时间:2010-03-29 11:19:46

标签: ruby-on-rails

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

1 个答案:

答案 0 :(得分:8)

适用于Excel

  1. 我使用了FasterCSV和this post来生成在excel中打开的csv文件。
  2. 您还可以创建HTML表格并使用iqy文件加载Excel。为此,您可以创建一些新别名,然后处理新的.iqy和.excel格式。
  3. 在config / initializers / mime_types.rb

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

    然后在你的控制器中处理.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
    

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

    对于PDF

    1. See this other SO questionsuggested plug-in看起来不错,但我还没有用过。
    2. 我玩过,但从未真正用于制作,prawn。它似乎很好,只是没有使用它。
    3. For Doc

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

      另一种方法

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