この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
KBMJがZDnetで連載している記事を紹介します。コメントなどありましたらそちらでお願いします。
Rubyでどう書く?:RubyでWord文書を作成する 三浦義太郎(KBMJ)
RubyでPDFが作成できるなら、Wordだってできちゃうだろう――そんな試みです。
問題
第5回目のテーマは第2回「RubyでPDF履歴書を作成する」の変奏です。
第2回はRubyでPDF文書を作成するというお題でしたが、Microsoft Word文書を作成したいということも多いと思います。
というわけで、今回はRubyでWord文書を作成してみたいと思います。
回答例
require 'rdoc/template'
template = TemplatePage.new IO.read('name.xml')
File.open("result.xml", 'wb') do |f|
template.write_html_on(f, {'name' => $*[0]})
end
簡単すぎですね。
解説
今回のミソは、Word 2003から使えるようになったXML文書を使用しているところです。
元の文書は「name.xml」で、これはWord(筆者の環境では2007)で作成したものです。そのため、レイアウトはWordで行うことが可能です。
あとは文字を置き換えたい部分を「%name%」としてあげて、XML文書形式で保存します。
Wordで文書の元が作れるのが大きなメリットですね。
プログラムの実行は
ruby [作成したプログラム] [%name%に置き換えたい文字列]
で、プログラムと同じフォルダにresult.xmlというファイルが作成されます。
開いてみると「%name%」が置き換えたい文字列になっているはずです。
最後に――
WordのXML文書は、無償で提供されている2003以降のWordビューワを導入することで閲覧できるので、対応したバージョンのWordを持っていなくても大丈夫です。
この機会に社内文書の作成などにRubyを導入してみてはどうでしょうか(まあ、Rubyじゃないとできないというわけじゃないですが……)。