使用spreadsheet操作Excel
这可能是Ruby读取Excel最好的gem了。还有一种方法是调用win32ole,不能跨平台。
一个陷阱:spreadsheet不能精确识别数字单元格类型,所有数字都识别成Float
读取Excel
5 | book = Spreadsheet.open( '~/read.xls' , 'r' ) |
7 | sheet1 = book.worksheet( 0 ) |
12 | puts cell.to_i.to_s if cell.is_a?(Float) |
写Excel
4 | book = Spreadsheet::Workbook. new |
5 | sheet1 = book.create_worksheet :name => 'My Worksheet' |
7 | sheet1.row( 0 ).concat %w{Name Country Acknowlegement} |
12 | row.push 'Ruby Excel Writer' |
15 | sheet1.row( 0 ).height = 18 |
17 | format = Spreadsheet::Format. new :color => :blue , |
20 | sheet1.row( 0 ).default_format = format |
21 | bold = Spreadsheet::Format. new :weight => :bold |
22 | 4 .times do |x| sheet1.row(x + 1 ).set_format( 0 , bold) end |
24 | book.write '~/write.xls' |
参考资料:
http://spreadsheet.rubyforge.org
http://spreadsheet.rubyforge.org/file.GUIDE.html