rails 做 csv 导出挺容易的,只是大部分还是要组装二维数组。 我想直接抓取页面的表格做导出,这样页面显示时的一些转换也可以重用了。
代码如下:
def generate_csv_data(template = nil)
template ||= "#{controller_name}/#{action_name}.html.slim"
content = render_to_string(template)
doc = Nokogiri::HTML(content)
table = doc.at_css('table')
data = table.css('tr').map do |r|
r.css('td,th').map(&:text).to_csv
end.join
# Convert from utf8 to gbk to make it compatible with Windows Office Excel
# And Mac number can work with GBK too
data = data.encode('GBK', undef: :replace, replace: "")
end
全文在这里 http://lingceng.github.io/blog/2015/12/23/export-csv-or-excel-by-re-using-existing-html-view/