こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 RubyのrubyXLのgemを使ってエクセルファイル(xlsx)に上書きで書き込みするやり方について、
- エクセルファイル(xlsx)を書き込みするサンプルプログラム
- 実行結果
- 解説
という順番で解説していきます。
rubyXLをインストールするやり方はこちらの記事をご参考ください。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
Rubyのバージョン | 2.6.6 |
rubyXLのバージョン | 3.4.25 |
この記事ではRubyプログラムは
C:\rubystudy
に作成しています。
エクセルファイル(xlsx)を書き込みするサンプルプログラム
このサンプルプログラムは、
C:\rubystudy\sample\aaa
配下にある「sample.xlsx」というエクセルファイルに書き込みします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
require 'rubyXL' sample_xlsx = RubyXL::Workbook.new # Excelのワークシートを取得し、書き込み sample_worksheet = sample_xlsx[0] sample_worksheet.add_cell(0, 0, 'aaa') sample_worksheet.add_cell(0, 1, 'bbb') sample_worksheet.add_cell(1, 0, 'ccc') sample_worksheet.add_cell(1, 1, 'ddd') sample_xlsx.write('C:/rubystudy/sample/aaa/sample.xlsx') puts "xlsx書き込み完了" |
実行結果
実行前に
C:\rubystudy\sample\aaa
の「sample.xlsx」の中を確認します。
中身が空であることを確認しました。
では、エクセルファイルがに書き込みできるかを確認します。
Rubyプログラムを実行するやり方は、以下の記事をご参考ください。
1 2 |
C:\rubystudy>ruby workbook_new_sample.rb xlsx書き込み完了 |
C:\rubystudy\sample\aaa
の「sample.xlsx」の中を確認します。
シートに書き込みができていることが確認できました。
解説
サンプルプログラムから大切な点である
- requireについて
- エクセルファイル(xlsx)書き込みについて
の2点を解説していきます。
requireについて
rubyXLを使う場合
1 |
require 'rubyXL' |
は必須の宣言です。
忘れないようご注意ください。
require関数については、こちらの記事をご参考ください。
エクセルファイル(xlsx)書き込みについて
エクセルファイル(xlsx)を扱うためのWorkbookを新規作成するやり方はこちらの記事をご参考ください。
エクセルファイルのシートに書き込みをしている箇所は
1 2 3 4 5 |
sample_worksheet = sample_xlsx[0] sample_worksheet.add_cell(0, 0, 'aaa') sample_worksheet.add_cell(0, 1, 'bbb') sample_worksheet.add_cell(1, 0, 'ccc') sample_worksheet.add_cell(1, 1, 'ddd') |
の部分です。
1 |
sample_worksheet = sample_xlsx[0] |
では作成したWorkbookの最初のシートを取得しています。
取得したシートに対して、add_cellメソッドで書き込みをしています。
1 2 3 4 |
sample_worksheet.add_cell(0, 0, 'aaa') sample_worksheet.add_cell(0, 1, 'bbb') sample_worksheet.add_cell(1, 0, 'ccc') sample_worksheet.add_cell(1, 1, 'ddd') |
add_cellメソッドに指定している各引数は、以下の意味を持っています。
第一引数 | 書き込む行数を指定 |
---|---|
第二引数 | 書き込む列数を指定 |
第三引数 | セルに書き込む値を指定 |
行と列はどちらも「0」始まりです。
たとえば
1 |
sample_worksheet.add_cell(0, 1, 'bbb') |
は
という意味になり、0行目の1列目であるB1セルに「bbb」という値が書き込みされます。
まとめ:rubyXLでエクセルファイル(xlsx)を書き込みしてみよう
以上がRubyでrubyXLを使ってエクセルファイル(xlsx)を書き込みするやり方の解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント