以前、こちらでスクリプトを書いたが、使用しているOSがWindowsでなくなったのでWin32OLEが使えなくなった。
Spreadsheetを使って書き直してみた。
require 'spreadsheet'
if ARGV.length != 5 then
abort "引数の数が正しくありません。\nruby spreadsheet.rb 対象ディレクトリ 対象シート 対象セル(行) 対象セル(列) 値"
end
@src_dir, @target_sheet, @target_cell_row, @target_cell_col, @value = ARGV
Dir.glob("#{@src_dir}/*.xls") do |f|
book = Spreadsheet.open f
sheet = book.worksheet @target_sheet
r = @target_cell_row.to_i
c = @target_cell_col.to_i
sheet[r, c] = @value
book.write "dst/#{File.basename f}"
end