师傅领进门,修行靠个人。

Ruby操作Excel文件【zhuan】

上一篇 / 下一篇  2012-06-30 00:01:10 / 个人分类:Ruby+Watir

require "win32ole"

#打开excel文件,对其中的sheet进行访问
excel = WIN32OLE::new("excel.Application")
workbook = excel.Workbooks.open("E:\\test02.xls")
worksheet = workbook.Worksheets(1)#定位到第一个sheet
worksheet.Select

#读取数据
data = worksheet.Range("a1:d2").value #读取单元格A1到D2的数据
puts data

#将数据写入到excel表格中
worksheet.Range("a4").value = Time.now.strftime'%d/%m/%Y' #将当前时间写入excel
worksheet.Range("a5:c5").value = ["test",'25',"result"]#将一个数组写入

#调用宏定义
#excel.Run('SortByNumber')

#设置背景颜色
worksheet.Range('a1:d1').Interior.ColorIndex = 36 #pale yellow
# 将背景色恢复成无色
#worksheet.Range('a3:f5').Interior['ColorIndex'] = -4142 # XlColorIndexNone constant
# 使用Excel constant 将背景色恢复成无色
#worksheet.Range('a3:f5').Interior['ColorIndex'] = ExcelConst::XlColorIndexNone

#设置字体颜色为红色
worksheet.Range('a2:d2').Font.ColorIndex = 3
#迭代访问;如果范围是一个矩形,则会按行循环迭代访问
worksheet.Range('a1:f1').each do |cell|
  puts cell.value
end

#保存
workbook.Close(1)
#或者
workbook.SaveAs("E:\\test02.xls")

#结束会话
excle.Quit

##创建一个EXCEL文件并保存
#require "win32ole"
#excel = WIN32OLE.new('excel.application')
#excel.visible = true
#workbook = excel.workbooks.add
#workbook.SaveAs('E:\\test\\TEST.xls')
#workbook.close


对单元格的操作:

某个单元格: sheet.range("a1")

a1到c3的值:   sheet.range("a1", "c3")  或 sheet.range("a1:c3")

第一列:    sheet.range("a:a")

第三行:    sheet.range("3:3")

获得单元格的值:
range.text  #读取值,返回为字符串格式,如果单元格内为数字,有可能会被截断小数点后的位数
sheet.range("a1").text  

range.value  #读取值,数字不会截断
sheet.range("a1").value      

对单元格设置值
sheet.range("a1").value = 1.2345

sheet.range("a1").value = '1.2345'


TAG:

引用 删除 weslaylll   /   2013-02-02 15:04:05
3
引用 删除 weslaylll   /   2013-02-02 15:03:54
学习了,很受用哦
 

评分:0

我来说两句

Open Toolbar