こんにちは。たいら(@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 15 16 17 18 19 20 21 |
require 'rubyXL' require 'rubyXL/convenience_methods' sample_xlsx = RubyXL::Workbook.new # Excelのワークシートを取得し、書き込み sample_worksheet = sample_xlsx[0] sample_worksheet.add_cell(1, 1, 'top hairline') sample_worksheet.add_cell(1, 3, 'bottom thin') sample_worksheet.add_cell(1, 5, 'left medium') sample_worksheet.add_cell(1, 7, 'right thick') # 書き込みしたセルに罫線を引く sample_worksheet[1][1].change_border(:top, 'hairline') sample_worksheet[1][3].change_border(:bottom, 'thin') sample_worksheet[1][5].change_border(:left, 'medium') sample_worksheet[1][7].change_border(:right, 'thick') sample_xlsx.write('C:/rubystudy/sample/aaa/sample.xlsx') puts "xlsx書き込み完了" |
実行結果
実行前に
C:\rubystudy\sample\aaa
の「sample.xlsx」の中を確認します。
中身が空であることを確認しました。
では、エクセルファイルに太字で書き込みできるかを確認します。
Rubyプログラムを実行するやり方は、以下の記事をご参考ください。
1 2 |
C:\rubystudy>ruby workbook_font_bold_sample.rb xlsx書き込み完了 |
C:\rubystudy\sample\aaa
の「sample.xlsx」の中を確認します。
指定したセルのみ罫線を引けていることが確認できました。
解説
サンプルプログラムから大切な点である
- requireについて
- 罫線指定について
の2点を解説していきます。
requireについて
rubyXLを使う場合は
1 |
require 'rubyXL' |
罫線などを指定できるメソッドを使いたい場合は
1 |
require 'rubyXL/convenience_methods' |
という宣言が必須です。
忘れないようご注意ください。
require関数については、こちらの記事をご参考ください。
罫線指定について
エクセルファイル(xlsx)に上書きで書き込みするやり方はこちらの記事をご参考ください。
特定のセルに罫線を指定している箇所は
1 2 3 4 |
sample_worksheet[1][1].change_border(:top, 'hairline') sample_worksheet[1][3].change_border(:bottom, 'thin') sample_worksheet[1][5].change_border(:left, 'medium') sample_worksheet[1][7].change_border(:right, 'thick') |
の部分です。
change_borderメソッドは、呼び出しているセルにどんな線を引くかを指定できるメソッドです。
指定する引数の意味は
- 第一引数:罫線を引く場所
- 第二引数:引く罫線の太さ
です。
第一引数に指定することができる値と意味をまとめました。
値 | 意味 |
---|---|
top | セルの上側 |
bottom | セルの下側 |
left | セルの左側 |
right | セルの右側 |
第二引数に設定できる値は罫線の太さの昇順で
- hairline
- thin
- medium
- thick
があります。
たとえば
1 |
sample_worksheet[1][5].change_border(:left, 'medium') |
は、取得したシートの1行目の5列目のセル、つまりF2セルで呼び出してセルの左に「medium」の太さで罫線を引いてます。
まとめ:rubyXLでエクセルファイル(xlsx)の指定したセルに罫線を引いてみよう
以上がRubyでrubyXLを使ってエクセルファイル(xlsx)の指定したセルに罫線を引くやり方の解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント