view页面的写法:
<%= link_to "导出竞价", import_quote_ancient_statistic_base_index_path, class: 'btn' %><-- 只是一个超链接 -->
controller实例:
def import_quote
@bid_projects = BidProject.where(workflow_state: 'finished').ransack(params[:q]).result # 查找需要导出的对象
send_data(BidProject.write_excel(@bid_projects), :type => "text/excel;charset=utf-8; header=present", :filename => "订单.xls" ) # 调用模型的方法
end
model的实例:
def self.write_excel(bid_projects)
xls = StringIO.new
Spreadsheet.client_encoding = 'utf-8' # excel工作文件(Worksheets)通常有多种编码格式,这里需要手动表明格式
book = Spreadsheet::Workbook.new # 创建一个Workbook对象
sheet1 = book.create_worksheet :name => '竞价统计' # 创建一个名称为“竞价统计”的工作表
style = Spreadsheet::Format.new :weight => :bold, :size => 14, :color => "red", :border => :thin, :border_color => "black", :pattern => 1, :pattern_fg_color => "yellow" # 设置单元格属性
style_right = Spreadsheet::Format.n