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
相关文章推荐
- Kafka设计解析(二):Kafka High Availability (上)
- configure: error: --with-ssl=openssl was given, but SSL is not available.
- [转载]Error -27796: Failed to connect to server
- 关于同步,异步,阻塞,非阻塞,IOCP/epoll,select/poll,AIO ,NIO ,BIO的总结
- 【leetcode】Factorial Trailing Zeroes
- HDU4355-Party All the Time-三分法(模板)-2012 Multi-University Training Contest 6
- shutdownServer failed: shutdown must run from localhost when running db without auth
- DS | Tree | PAT | Tree Traversals Again
- hashCode和equals重写
- Error: Activity class {package1/package2.mainActivity} does not exist.
- LeetCode_contains-duplicate
- rails db:create错误
- New package not yet registered with the system. Waiting 3 seconds before next attempt
- POJ 1995 Raising Modulo Numbers(快速幂)
- raid write-bakc write-through的解释
- raid组的初始化详解
- Contains Duplicate
- 游戏人工智能开发之6种决策方法
- 游戏人工智能开发之6种决策方法
- oschinaIM/聊天/语音工具