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#结束会话
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
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
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
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
2 $KCODE='gbk'
3
4 require "win32ole"
5 excel=WIN32OLE.new('excel.application')
6
7
8 excel.quit