rubyでエクセルファイルを作成
とりあえず、rubyから
- セルへの記入
- 色づけ(背景色)
- フォント変更(bold, italic)
- 名前の定義
- 名前へのリンクの作成
をやってみました。
require 'excel' require 'file-win32' def addName(doc, name, cell) doc.names.add(name, "=%s!%s" % [cell.worksheet.name, cell.address]) end Excel.runDuring(true, true) do |excel| doc = excel.workbooks.add doc.worksheets(1).name = "LL" ruby = doc.worksheets(1).cells(1,1) ruby.value = 'Ruby' perl = doc.worksheets(1).cells(2,1) perl.value = 'Perl' perl.interior.colorindex = 3 python = doc.worksheets(1).cells(1,2) python.value = 'Python' python.font.italic = true python.interior.colorindex = 6 php = doc.worksheets(1).cells(2,2) php.value = 'PHP' php.interior.colorindex = 7 php.font.bold = true [ruby, perl, python, php].each do |cell| addName(doc, cell.value, cell) end sht2 = doc.worksheets(2) sht2.name = "link" nms = doc.names for row in 1..nms.count sht2.hyperlinks.add(sht2.cells(row, 2), "", nms.item(row).name, "linkto: #{nms.item(row).name}", nms.item(row).name) sht2.cells(row, 3).value = nms.item(row).referstorange.address end doc.saveas(FileSystemObject.instance.getAbsolutePathName("Hoge.xls")) end
rubyからoleを使うことについては、
http://www.morijp.com/masarl/homepage3.nifty.com/masarl/article/ruby-win32ole/excel-1.html
などを参考に。
また、色については、
http://www.microsoft.com/japan/technet/scriptcenter/resources/officetips/mar05/tips0329.mspx
などを参考に。
意外に、rubyからexcel操作するの面白いですねw
まあ、スクリプト起動中にexcel弄っていると落ちたり、なんか凄く時間が掛かったりするけどね。。。