RubyでHTMLファイル生成(Excelデータを一括でHTMLファイルにする)
以前にもブログで書いたRubyでHTMLファイル作成ですが、さらに改良しExcelの1行を1つのHTMLファイルに変換するプログラムを書きました。さらに、前回同様HTMLテンプレート機能も使用しています。Excelデータはタブ区切りテキストにします。
※プログラムはクリエイティブコモンズです。
#!/usr/bin/ruby -Ks
require 'erb'
require 'yaml'
include ERB::Util
$KCODE = 's'
class CreateHtml
def initialize
@config = YAML.load_file("config.yaml")
@erb = ERB.new(File.read(@config[:template]), nil, "-")
end
def generate
objs = input
for obj in objs do
output(obj)
end
end
def input
objs = Array.new
count = 0
open(@config[:data]).each{|input|
if count == 0
@headers = input.split
count = 1
next
end
h = Hash.new
arr = input.split
@headers.size.times{|i|
h.store(@headers[i], arr[i])
}
objs.push(h)
}
return objs
end
def output(o)
open(@config[:output]+"/"+o['id']+".html", "w"){ |output|
output.write(@erb.result(binding()))
}
end
end
obj = CreateHtml.new
obj.generate
YAMLも使ってみました。詳細は以下を参照。
config.yamlは以下の通り。
:template: template.rhtml :data: data.txt :output: output
data.txtにタブ区切りテキストです。1行目のheader行の項目名をテンプレートファイル(template.rhtml)に設定すると項目が書く行の設定値でHTML生成します。また、1行目のid項目は必須でその項目値がHTMLファイル名になります。
トラックバック(0)
このブログ記事に対するトラックバックURL(トラックバックは承認後に公開されます)


コメントする