六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 56|回复: 0

RUBY使用WIN32OLE与windows应用程序交互

[复制链接]

升级  23%

81

主题

81

主题

81

主题

举人

Rank: 3Rank: 3

积分
269
 楼主| 发表于 2013-2-7 03:38:29 | 显示全部楼层 |阅读模式
Win32ole为标准Ruby发行版的一部分。Win32ole是访问Windows自动化的接口,可以让RubyWindows应用进行交互。具体说来Win32ole可以操作Word,Excel,IE,Outlook等。


1.创建一个Word文件
 

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()    
 
2.调用Outlook发送邮件
 

require 'win32ole'  outlook = WIN32OLE('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    
3.创建一个Excel文件
 

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   
 
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()   
4.创建一个ie浏览器的实例
 

require "win32ole" #包含库  ie = WIN32OLE.new('InternetExplorer.Application')  ie.visible = true #这个时候就可以看到一个ie的界面出来了  ie.navigate('http://www.ask123.net') #转到这个页面    
参考:http://www.ruby-doc.org/stdlib/libdoc/win32ole/rdoc/
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表