您的位置:首页 > 大数据 > 人工智能

Rails中用CSV导出中文真心有技巧

2015-09-09 14:11 417 查看
require 'csv'

class PartRequestsController < ApplicationController
def render_csv_header(filename = nil)
filename ||= params[:action]
filename += '.csv'
if request.env['HTTP_USER_AGENT'] =~ /msie/i
headers['Pragma'] = 'public'
headers["Content-type"] = "text/plain"
headers['Cache-Control'] = 'no-cache, must-revalidate, post-check=0, pre-check=0'
headers['Content-Disposition'] = "attachment; filename=\"#{filename}\""
headers['Expires'] = "0"
else
headers["Content-Type"] ||= 'text/csv'
headers["Content-Disposition"] = "attachment; filename=\"#{filename}\""
end
end

def index
@part_requests = PartRequest.where(:status => params[:status]).order('id DESC')
@status = params[:status]

respond_to do |format|
format.html # index.html.erb
format.json { render json: @part_requests }
format.csv do
render_csv_header 'Part_Request_Report'
csv_res = CSV.generate do |csv|
csv << PartRequest.new.attributes.keys
@part_requests.each do |o|
o.part_request_details.each do |d|
csv << o.attributes.values
end
end
end
send_data "\xEF\xBB\xBF"<<csv_res.force_encoding("ASCII-8BIT")
end
end
end
end
end
end
end
end


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: