Yes. Basically you use the same VBA calls Office provides using Ruby
through the Win32Ole library.
How do you find what methods or attributes to call/use?, there are
several ways to find them:
+ one is by using Word itself: go to Tools > Macro > Visual Basic
Editor and once there go to View > Object Browser, then go crazy and
experiment with the gazillion options.
+ Open a doc through IRB (see sample code below), and inspect objects
by something like word_object.ole_methods (sadly you can't .sort them)
+ download and run a Ruby OLE browser, again go crazy. One can be
found at http://dave.burt.id.au/ruby/ole_browser.rb
Now some Ruby:
require 'win32ole'
word = WIN32OLE.new('word.application')
word.visible = true
word.documents.count
# open/create new document
word.documents.add
# or open file
word.documents.open(path_to_file)
# type something
word.selection.typetext("Hello World!\n")
# select whole text
word.selection.wholestory
# delete selection
word.selection.delete
# move to start of document
word.selection.start = 0
word.selection.end = 0
# search for a string
word.selection.find.text = 'my search'
result = word.selection.find.execute
# read the selection
puts word.selection.text
# and position
puts word.selection.start
puts word.selection.end
# or set the position, and selection
word.selection.start = 20
word.selection.end = 23
puts word.selection.text
# printing
word.options.printbackground = false
word.activedocument.PrintOut
# SAVING document
word.activedocument.saveas file_name, wdFormatText
# notice the 2nd parameter which is a numeric constant
# indicating the file format to save in thusly:
# I believe omitting 2nd parameter would save in native .doc)
# wdFormatDocument = 0 (no conversion)
# wdFormatTemplate = 1
# wdFormatText = 2
# wdFormatTextLineBreaks = 3
# wdFormatDOSText = 4
# wdFormatDOSTextLineBreaks = 5
# wdFormatRTF = 6
# wdFormatUnicodeText = 7 # it repeats!
# wdFormatEncodedText = 7
# wdFormatHTML = 8
# wdFormatWebArchive = 9
# wdFormatFilteredHTML = 10
# wdFormatXML = 11
# close document
word.activedocument.close( true ) # presents save dialog box
word.activedocument.close( false ) # no save dialog, just close it
# quit word
word.quit
HIH
--CT
···
On 3/2/07, Ww Ee <poxvuibr@mail.ru> wrote:
just wanted to ask if it had any means to create or edit MS Word documents