首先下个插件,在你项目根目录
ruby script / plugin install http: // svn.napcsweb.com/public/excel
此时就会唉vendor下多个文件夹,注意。里面有个excel.rb,这就是我们的核心方法
然后转到我们的控制器
#导出Excel开始
def export
@ala_users = User.find(:all)
@count = Record.count(:conditions => [ ' ala_organization_id = ? and ala_user_id = ? ' ,session[:organization_id],session[:user_id]])
@count_pass = Record.count(:conditions => [ ' ala_organization_id = ? and ala_user_id = ? and status = ? ' ,session[:organization_id],session[:user_id], ' 6 ' ])
array = Array. new
for i in 0 ..@ala_users.length - 1
item = OrderedHash. new
item[ " 姓名 " ] = @ala_users[i].name
item[ " 部门 " ] = @ala_users[i].ala_department.name if @ala_users[i].ala_department
item[ " 职位 " ] = @ala_users[i].positions
item[ " 学时 " ] = @ala_users[i].learning_times
item[ " 学分 " ] = @ala_users[i].learning_credits
item[ " 报名课程数 " ] = @count[i]
item[ " 通过课程数 " ] = @count_pass[i]
array << item
end
e = Excel::Workbook. new
e.addWorksheetFromArrayOfHashes( " Books info " , array)
headers[ ' Content-Type ' ] = " application/vnd.ms-excel "
render_text(e.build)
end
ruby script / plugin install http: // svn.napcsweb.com/public/excel
此时就会唉vendor下多个文件夹,注意。里面有个excel.rb,这就是我们的核心方法
然后转到我们的控制器
#导出Excel开始
def export
@ala_users = User.find(:all)
@count = Record.count(:conditions => [ ' ala_organization_id = ? and ala_user_id = ? ' ,session[:organization_id],session[:user_id]])
@count_pass = Record.count(:conditions => [ ' ala_organization_id = ? and ala_user_id = ? and status = ? ' ,session[:organization_id],session[:user_id], ' 6 ' ])
array = Array. new
for i in 0 ..@ala_users.length - 1
item = OrderedHash. new
item[ " 姓名 " ] = @ala_users[i].name
item[ " 部门 " ] = @ala_users[i].ala_department.name if @ala_users[i].ala_department
item[ " 职位 " ] = @ala_users[i].positions
item[ " 学时 " ] = @ala_users[i].learning_times
item[ " 学分 " ] = @ala_users[i].learning_credits
item[ " 报名课程数 " ] = @count[i]
item[ " 通过课程数 " ] = @count_pass[i]
array << item
end
e = Excel::Workbook. new
e.addWorksheetFromArrayOfHashes( " Books info " , array)
headers[ ' Content-Type ' ] = " application/vnd.ms-excel "
render_text(e.build)
end
现在就ok了,但是注意OrderedHash这个hash,这个hash是有序的,爽吧!别慌,需要在控制器里面导入
require "active_support"
include ActiveSupport
include ActiveSupport
OrderedHash才可已用