論理の流刑地

地獄の底を、爆笑しながら闊歩する

【備忘】逆引きXLConnect

Introduction

意外と色々やれるXLConnect、すごいぞXLConnect。

でもちょっと仕組みがわかりにくくて、初見さんに優しくない感じなので
色々な用途別で、こう書けばいいのよっていうのを備忘

<参考URL>

  1. vignettes
  2. reference
  3. RでExcelファイルの読み込み・編集・出力 (XLConnect) - Qiita

セルの背景色をつける

createCellStyle(cellStyleの初期化)→setFillgroundColor(色の指定) →setFillPattern(色の塗り方の指定)→setCellStyle(cell styleの適用)
といった順番

cst1 <- XLConnect::createCellStyle(wb3)
XLConnect::setFillForegroundColor(cst1 , XLC$COLOR.SKY_BLUE)
XLConnect::setFillPattern(cst1, fill = XLC$FILL.SOLID_FOREGROUND) #だいたいこれでいい。
XLConnect::setCellStyle(wb3 , sheet="TestSheet", row = 1 , col = 1, cellstyle = cst1)

※ちなみに文字色を簡単に変える方法はXLConnectにはないようだ。残念。あらかじめExcel側で設定しておくしかない。

セルを結合する

mergeCells()を使う。referenceにセル参照を入れる

XLConnect::mergeCells(wb3, sheet = "TestSheet", reference = "A2:A3")

セルの罫線を設定する

setBorder()をつかう。
全体の流れとしては、createCellStyle()→setBorder()→setCellStyle()という流れ。
第二引数(side)にはbottom/top/left/right/allを指定。
typeには罫線のタイプを、colorには罫線の色を指定

#セルの上側を破線赤線、下側を実線黒線にする。
cst2 <- XLConnect::createCellStyle(wb3)
XLConnect::setBorder(cst2 , side= c("top","bottom"),color=c(XLC$COLOR.RED ,XLC$COLOR.BLACK), type=c(XLC$BORDER.DOTTED , XLC$BORDER.THIN))
XLConnect::setCellStyle( wb3 , sheet="NS2", row=7 , col=2 , cellstyle = cst2)

↓実行結果
f:id:ronri_rukeichi:20200901130800p:plain

オートフィルタを設定する

setAutofilter()を使う。sheetにシート名orインデックスを、referenceにセル参照を指定

XLConnect::setAutoFilter( wb3 , "NS2", "B1:C1")

↓実行結果
f:id:ronri_rukeichi:20200901131229p:plain

Conclusion

setなんちゃら系に戻り値がないのが、Rの文法に慣れていると少し気持ち悪いね。

BLUE ENCOUNT 『バッドパラドックス』Music Video【日本テレビ系土曜ドラマ「ボイス 110緊急指令室」主題歌】

Enjoy!