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でエクセルを操作しよう'
リンク