• 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
  • 相关阅读:
    枚举类型
    [ Java学习 ] “goto语句“ 和 “continue + 标号” 的不同待遇
    [ Java学习 ] 其他知识总结(重要)
    [ Java学习 ] Java变量以及内存分配(非常重要)
    [ Java学习 ] 包语句 package等语句的汇总整理
    [ Java学习 ] 破除思维定势之 C++ 和 Java 的差异 003
    P1601一道高精度的题
    啊哈,我又来了
    算了,有一道水题
    再水一道题
  • 原文地址:https://www.cnblogs.com/lizunicon/p/2034513.html
Copyright © 2020-2023  润新知