rubyでエクセルを操作したいので、まずは簡単なものから試してみる。
環境
■OS
Windows10pro
■Ruby
>ruby -v
ruby 2.4.4p296 (2018-03-28 revision 63013) [x64-mingw32]
1.エクセルブックの作成
require 'win32ole' #Excel VBA定数のロード module Excel; end excel = WIN32OLE.new('Excel.Application') excel.visible = true #Excelを表示する。 excel.displayAlerts = true #アラートメッセージを表示する WIN32OLE.const_load(excel, Excel) #■上記のコメント除く6行のコードは、おまじないとして、意味は理解していなくても記述しておく。 指定のパスにtext.xlsxを作成する。 #Excelブックの新規作成 book = excel.workbooks.add #指定のパスにtest.xlsxを作成する(保存する) book.saveAs('C:\Users\test\win32ole\test.xlsx') #Excelを閉じる book.close excel.quit()
2.エクセルブックを開く
指定のパスのtest.xlsxを開く
#おまじない require 'win32ole' module Excel; end excel = WIN32OLE.new('Excel.Application') excel.visible = true excel.displayAlerts = true WIN32OLE.const_load(excel, Excel) #Excelブックを開く book = excel.Workbooks.Open('C:\Users\test\win32ole\test.xlsx')
3.セルへの書き込み
A1セルに文字を書き込む
#おまじない require 'win32ole' module Excel; end excel = WIN32OLE.new('Excel.Application') excel.visible = true excel.displayAlerts = true WIN32OLE.const_load(excel, Excel) #Excelブックを開く book = excel.Workbooks.Open('C:\Users\test\win32ole\test.xlsx') #Excelの一番左端のシートを取得 sheet = book.worksheets(1) #A1セルへ書き込み(rowsが行の番号、columnsが列の番号) sheet.rows[1].columns[1].value = 'rubyでエクセルを操作しよう'
リンク