ホーム DoRuby Rubyでどう書く?: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じゃないとできないというわけじゃないですが……)。

記事を共有

最近人気な記事