ruby操作excel的几段代码

 1 #require "spreadsheet"
 2 require "jcode"
 3 $KCODE='gbk'
 4 
 5 #处理excel
 6 require "win32ole"
 7 excel=WIN32OLE.new('excel.Application')
 8 book=excel.Workbooks.open("E:\\与大奖有约\\22选5_0325.xls")
 9 sheet=book.Worksheets(1)
10 sheet.select
11 #excel.visible=true
12 
13 #读取数据
14 puts sheet.Range('a12')['value'].to_s
15 puts sheet.Range('b12')['value']
16 
17 #读入二维表
18 data=sheet.Range("a1:C12")['VALUE']
19 p data
20 
21 #找到a列 第一个空值
22 line=1
23 while sheet.Range("a#{line}")['value']!=nil
24   line=line+1
25 end
26 
27 puts line-1
28 #puts sheet.Range("a#{line}")['value']
29 
30 #将第一列的值  读入到  一个数组中
31 line='1'
32 data=[]
33 while sheet.Range("a#{line}")['value']
34   data<<sheet.Range("a#{line}:f#{line}")['value']
35   line.succ!
36 end
37 
38 p data
39 
40 
41 #将数据写入到excel表格中
42 sheet.Range('h2').value=Time.now.strftime '%/%m/%y'#写入单个值——日期
43 sheet.range('h1:j1').value=['测试','25','result']#写入一个数组
44 
45 
46 
47 #运行已经定义的宏"Macro2"
48 excel.run('Macro2')
49 
50 #设置背景色
51 sheet.range('a3:f5').interior['ColorIndex']=36#设置成暗黄色
52 sheet.range('a3:f3').interior['colorindex']=-4142#将背景色设置成无色
53 #-4142是常量
54 
55 
56 
57 book.Close(1)#保存  工作簿
58 excel.Quit#结束会话
 1 require "jcode"
 2 $KCODE='gbk'
 3 require "win32ole"
 4 excel=WIN32OLE.new("excel.Application")
 5 excel.visible=true
 6 book1=excel.workbooks.add
 7 sheet1=book1.worksheets(1)
 8 sheet1.select
 9 sheet1.range('a1').value=100
10 sheet1.range('a2').value='这是一个中文字符串'
11 book1.saveas("e:\\1.xls")
12 book1.close
13 excel.quit
 1 require "jcode"
 2 $KCODE='gbk'
 3 
 4 require "win32ole"
 5 excel=WIN32OLE.new('excel.application')
 6 
 7 #book1=excel.workbooks.add#新建一个待操作的文件
 8 #book1.saveas 'e:\\book1.xls'#保存新文件
 9 
10 #打开待操作文件
11 book1=excel.Workbooks.open('e:\\book1.xls')
12 
13 #sheet1=book1.open('sheet1')
14 #sheet1.select
15 
16 #下面的操作都是一样的结果
17 book1.worksheets('sheet1').range('a1').value='第一个'
18 
19 excel.worksheets('sheet1').range('a2').value='第二个'
20 
21 excel.activeworkbook.activesheet.range('a3').value='第三个'
22 
23 excel.activesheet.range('a4').value='第四个'
24 
25 excel.worksheets('sheet3').select
26 excel.range('a5:a1').value="第五个"
27 
28 #excel可以操作所有的 属性,默认为“当前工作簿/工作表"
29 
30 
31 
32 #book1.close
33 excel.quit
 1 require "jcode"
 2 $KCODE='gbk'
 3 #对单元格的操作
 4 require "win32ole"
 5 excel=WIN32OLE.new 'excel.application'
 6 book1=excel.Workbooks.open('e:\\book1.xls')
 7 
 8 sheet1=book1.Worksheets(1)#第一个worksheet表
 9 p sheet1.range('a1').text
10 
11 p sheet1.range('a1','c3').value
12 
13 #puts sheet1.range('a:a').value
14 
15 
16 #获取单元格的值
17 puts sheet1.range('a2').text
18 puts sheet1.range('a2').value
19 
20 #对单元格设置值
21 sheet1.range('h1').value=1.23456
22 sheet1.range('h2').value='1.23456'
23 a=sheet1.range('h1').value
24 b=sheet1.range('h2').value
25 puts "a等于b" if a==b
26 
27 #迭代访问
28 sheet1.range('a1:a10').each{|cell| puts cell.value
29   cell.value='100'
30 }
31 
32 #使用cell()
33 sheet1.range("b3:c7").rows.each{
34   |r|
35   r.cells(1,1).value='dd'
36 }
37 
38 book1.close
39 excel.quit
1 require "jcode"
2 $KCODE='gbk'
3 
4 require "win32ole"
5 excel=WIN32OLE.new('excel.application')
6 
7 
8 excel.quit
原文地址:https://www.cnblogs.com/lizunicon/p/2034513.html