将数据导出到excle,不过,没接触过不知道如何下手!
我的想法,肯定又是ruby操作了。
麻烦大家给个思路,介绍详细点,这方面一点接触没有过!看了别人写的,大多数类库或者方法都没接触过,所以吃力!并不理解
要实现:
1.在后台一个管理按钮“导出报表”(因为我来搞后台管理,有图)
2.到对应的action后要生成excel文件,之后供下载呀!
主要是这个action怎么写啊 :cry:
成功后一定追加分。在此先谢谢了
我的开发环境是xp
将数据导出到excle,不过,没接触过不知道如何下手!
我的想法,肯定又是ruby操作了。
麻烦大家给个思路,介绍详细点,这方面一点接触没有过!看了别人写的,大多数类库或者方法都没接触过,所以吃力!并不理解
要实现:
1.在后台一个管理按钮“导出报表”(因为我来搞后台管理,有图)
2.到对应的action后要生成excel文件,之后供下载呀!
主要是这个action怎么写啊 :cry:
成功后一定追加分。在此先谢谢了
我的开发环境是xp
首先,点击view页面,会调用一个对应controller的action 比如 store_excel,
这个action应该需要一个参数,比如excle_data,格式应该是hash或者array。
然后,在controller的store_excel里就可以把excel_data迭代写到excel文件里了。
大概结构如下:
[code="ruby"]view:
<%= button_to "Store excel", :action=> 'store_excel',:excle_data=>@data %>
controller:
def store_excel
if params.key?('excle_data')
end
end[/code]
剩下的就是,你想要选什么方法生成和写excel了。
例如:
3. 生成excel文件
如果,你想生成一个excel文件,那么首先,就像写文件一个先加载spreadsheet类库,然后,指定编码接着,就可以创建一个Workbook了
[code="ruby"] book = Spreadsheet::Workbook.new[/code]
在workbook基础上创建Worksheet表单
[code="ruby"]sheet1 = book.create_worksheet[/code]
当然,你也可以用如下方式创建表单:
[code="ruby"]sheet2 = book.create_worksheet :name => 'My Second Worksheet'
sheet1.name = 'My First Worksheet'[/code]
那么,这时我们可以采用如下方式加载数据到表单Worksheet#[]=,
Worksheet#update_row, 或者直接给一个指定单元格复制
[code="ruby"]sheet1.row(0).concat %w{Name Country Acknowlegement}
sheet1[1,0] = 'Japan'
row = sheet1.row(1)
row.push 'Creator of Ruby'
row.unshift 'Yukihiro Matsumoto'
sheet1.row(2).replace [ 'Daniel J. Berger', 'U.S.A.',
'Author of original code for Spreadsheet::Excel' ]
sheet1.row(3).push 'Charles Lowe', 'Author of the ruby-ole Library'
sheet1.row(3).insert 1, 'Unknown'
sheet1.update_row 4, 'Hannes Wyss', 'Switzerland', 'Author'[/code]
对于格式的处理,可以如下:
[code="ruby"] sheet1.row(0).height = 18
format = Spreadsheet::Format.new :color => :blue,
:weight => :bold,
:size => 18
sheet1.row(0).default_format = format
bold = Spreadsheet::Format.new :weight => :bold
4.times do |x| sheet1.row(x + 1).set_format(0, bold) end[/code]
最后,保存excel文件
[code="ruby"] book.write '/path/to/output/excel-file.xls'[/code]
具体有关ruby操作excel你也可以参考[url=http://hlee.iteye.com/admin/blogs/search?query=excel]如下[/url]