その他
    ホーム技術発信DoRubyRubyでどう書く?:RubyでWord文書を作成する

    Rubyでどう書く?:RubyでWord文書を作成する

    この記事はアピリッツの技術ブログ「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じゃないとできないというわけじゃないですが……)。