[Ruby-Excel操作] Excel操作を行う際の雛形サンプル
リサイクルできそうなコードを作成したら貼っていく予定です。
雛形サンプル集
■ディレクトリに存在するEXCELファイル全てに処理を行う 処理対象ディレクトリはカレントディレクトリです。 処理記述部に記述した処理を、指定ディレクトリに存在する全Excelファイルに対して行います。
require 'win32ole' # Excelのオブジェクトを作成 xl = WIN32OLE.new('Excel.Application') # Excelの定数を読込み module ExcelConst end WIN32OLE.const_load(xl, ExcelConst) begin # ディレクトリに存在するEXCELファイル全てに処理を行う Dir::glob("*.xls").each {|f| begin # ワークブックを開き、シートを選択 book = xl.Workbooks.Open(File::expand_path(f,"./")) sheet = book.Worksheets(1) ### ここに処理を記述する ### # ワークブックを保存する book.save puts "SAVE:" + f ensure # ワークブックを閉じる book.close end } ensure # Excelを終了 xl.Quit end
■ディレクトリに存在するEXCELファイル全ての印刷を行う 処理対象ディレクトリはカレントディレクトリです。 この雛形は、全ファイルの1シート目のみの印刷を行う内容になっています。
require 'win32ole' # Excelのオブジェクトを作成 excel = WIN32OLE.new('Excel.Application') begin # ディレクトリに存在するEXCELファイル全てに処理を行う Dir::glob("*.xls").each {|f| begin # ファイルオープンログ出力 print "[" + Time.now.strftime("%Y-%m-%d %H:%M:%S") + "]" puts "[OPEN] " + f # ワークブックを開く book = excel.Workbooks.Open(File::expand_path(f,"./")) ### 特別処理を行う場合はここに処理を記述 ### # 使用するプリンタを設定(デフォルトプリンタを使用する場合は不要) #excel.ActivePrinter = "hogehogePrinter on Ne99:" excel.DisplayAlerts = false # 印刷開始ログ出力 print "[" + Time.now.strftime("%Y-%m-%d %H:%M:%S") + "]" print "[PRINT] " + f # 印刷実行(配列指定で、複数シートを選択可) #book.Worksheets([1, 2]).PrintOut book.Worksheets(1).PrintOut # 成功ログ出力 puts "===>OK" rescue # 失敗ログ出力 puts "===>ERROR" ensure # ワークブックを閉じる book.close end } ensure # Excelを終了 excel.Quit end
よく使う定数一覧
…を、そのうちまとめようと思います。
「ruby」に関する「本」の商品を自動的に表示しています。
キーワードに関連していない商品は、Amazonがオススメする商品です。気になる物があればどうぞ。
キーワードに関連していない商品は、Amazonがオススメする商品です。気になる物があればどうぞ。
作成日:2010年07月27日(Tue) / 更新日:2010年07月30日(Fri)