Find & Replace In Word Document With Ruby
Join the DZone community and get the full member experience.
Join For FreeI use this to open a "template" (really just a plain Word document with [text to replace] inside), do the substitutions, and save as a new filename.
require 'win32ole'
word = WIN32OLE.new('Word.Application')
#word.Visible = true # uncomment if you want to see it happen
doc = word.Documents.Open('c:\file_to_open.doc')
{
'name' => 'Tim Morgan',
'date' => Date.today.strftime('%B %d, %Y'),
...
}.each do |key, value|
word.Selection.HomeKey(unit=6) # start at beginning
find = word.Selection.Find
find.Text = "[#{key}]" # text must be in square brackets
while word.Selection.Find.Execute
word.Selection.TypeText(text=value)
end
end
doc.SaveAs('c:\output_file.doc')
doc.Close
Document
Opinions expressed by DZone contributors are their own.
Comments