地址:
http://www.taobaotest.com/blogs/qa?bid=3377
http://hlee.iteye.com/blog/356460
操作excel 最好的方式是使用vba进行提供的丰富大量的接口来操作excel ,但是如何使用ruby操作excel?
1.通常做法,既然是微软提供的软件,就需要查阅,微软提供的API了,需要包含win32,在ruby,前加入,require 'win32ole'
例如:
require 'win32ole'
myexcel = WIN32OLE.new("excel.application")
myexcel.visible=true
mywbk = myexcel.Workbooks.Add()
mywst= mywbk.Worksheets(1)
mywst.Range('A1:D1').value =['1','2','3','4']
将['1','2','3','4']写入EXCEL的'A1:D1'区域
2.使用纯ruby 读写excel
@file_task_name ="e:/test.xls"
@fo=File.open(@file_task_name,"r")
# def total_lines @lines = 0 @fo.each_with_index {|@item,@lines|} puts @lines+1 @lines= @lines+1 File.open(@file_task_name) do |file| #file.each_line{|line| puts line} file.close();
这里我推荐一款,操作excel的第三方工具
1.Parseexcel插件(主要是excel读取)
安装方式:gem install parseexcel
require 'rubygems' require 'spreadsheet/excel'
具体操作检测提供帮助文档
#从命令行输入要打开的excel文件名 workbook = Spreadsheet::Parseexcel.parse"e:/test.xls")#得到第一个表单
worksheet = workbook.worksheet(0) #遍历行
worksheet.each { |row| j=0 i=0 if row != nil #遍历该行非空单元格
row.each { |cell| if cell != nil #取得单元格内容为string类型
contents = cell.to_s('latin1') puts "Row: #{j}
Cell: #{i}> #{contents}"
end i = i+1
}
end
}
2.spreadsheet插件(主要是excel生成写入数据)
安装方式:gem install spreadsheet
require ' parseexcel/parser'
具体操作检测提供帮助文档