如何导出带有XLS扩展名的HTML文件?

时间:2012-01-11 23:37:31

标签: ruby-on-rails ruby xls

我正在尝试生成报告。我已经在视图中创建了HTML表格,并希望遵循“Exporting data to CSV and Excel in your Rails app”中讨论的方法。

我看了:

  

“在我的项目中,我将html表保存到文件中,但是给它xls扩展名而不是html。例如table.xls。然后我将它发送到带有Excel mime类型的浏览器,Excel将打开这个文件并且还会像html表那样格式化表格,这样你就会得到加粗的标题和单元格背景颜色等。“

     

“我知道的最简单的方法是生成一个带有表的HTML文件,并为其提供XLS扩展。HTML charset受到尊重,你可以根据需要设置换行符,小端或大端不是问题, th-tags定义了列标题,并且已经有很多解决方案来构建文件。“

如何将HTML表保存到文件中,并为其提供.XLS扩展名以在Excel中打开它?

1 个答案:

答案 0 :(得分:2)

不知道这是否是好建议。我个人总是坚持使用csv。但是你会这样做。

class ExportController < ApplicationController
  def export
    html = build_html_table()
    respond_to do |format|
      format.xls { send_data html, :type => 'application/vnd.ms-excel; charset=utf-8; header=present', :filename => 'export.xls' }
    end
  end
end

然后在config / initializers / mime_types.rb中你需要追加:

Mime::Type.register 'application/vnd.ms-excel', :xls