ruby win32ole 操作

Win32oleWin32ole为标准Ruby发行版的一部分。
Win32ole是访问Windows自动化的接口,可以让Ruby和Windows应用进行交互。
具体说来Win32ole可以操作Word,Excel,IE,Outlook等。

以下均为代码片段 Word 创建一个Word文件
Ruby代码   
require 'win32ole'       
word = WIN32OLE.new('Word.Application')        
word.visible=true  #是否打开文件    
word.Documents.Add()       
 for i in(0..100)          
word.Selection.Font.Size=12          
word.Selection.Font.ColorIndex = 2          
word.Selection.TypeText("Word with Ruby \n")        
end       
word.DefaultSaveFormat        
word.Documents.close()  

Outlook 调用Outlook发送邮件 Ruby代码    
require 'win32ole'     
outlook = WIN32OLE.new('Outlook.Application')     
message = outlook.CreateItem(0)     
message.Subject = 'Subject line here'     
message.Body = 'This is the body of your message.'     
message.To = 'xiaofan2350@yahoo.com.cn'     
message.Attachments.Add('c:\really\one.txt', 1)     
message.Send 

*:发送完一个后,必须再new一个新的对象才能成功

Excel 创建一个Excel文件 Ruby代码    
require 'win32ole'     
excel = WIN32OLE.new('Excel.Application')     
book = excel.workbooks.add     
sheets = book.worksheets(1)     
cells = sheets.cells("A1:A5")     
cells.each do |cell|       
cell.value = 10     
end  Ruby代码    
require 'win32ole'        
excel = WIN32OLE.new("Excel.Application")               
excel.Visible = true  #是否打开文件     
excel.WorkBooks.Open("d:\\really.xls")   #打开excel     
worksheet = excel.ActiveWorkbook.WorkSheets(1)        
# Output the sheet count of the current work book.     
rows = worksheet.UsedRange.Rows  #得到excel文件的行数     
worksheet.Range('A1:D1').value = ['North','South','East','West'] #往excel指定区域写入数据     
worksheet.Range('A2')['value'] = "really"     
worksheet.Range('B2')['value'] = "notreally"     
worksheet.Range('C2')['value'] = "javaeye"     
worksheet.Range('D2')['value'] = "notreally.javaeye.com"     
excel.ActiveWorkbook.WorkSheets.add({'count'=>1, 'after'=>worksheet})      #添加一个excel工作区      excel.ActiveWorkbook.Close  #关闭工作区     
excel.Quit()   


IE 创建一个ie浏览器的实例 Ruby代码   
 require "win32ole" #包含库    
 ie = WIN32OLE.new('InternetExplorer.Application')     
ie.visible = true #这个时候就可以看到一个ie的界面出来了    
 ie.navigate('http://www.ask123.net') #转到这个页面 
sleep(0.1) until ie.busy == false 
#sleep 直到ie.busy为false 页面完全载入为止  
ie.Document.getElementById("username").value = "coderlee"
 #输入账户名  
ie.Document.getElementById("password").value = "******" 
#输入密码  
ie.Document.getElementById("btn1").click 
#登录按钮的id是btn1 模拟点击一下 

其实可以利用交互式编程方式 想查创建出来的一个ole对象的方法 就输入.ole_meth已实现Ruby调用win32ole。
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值