Axlsxにて、条件付き書式を使う
RubyでExcelファイルを生成できるAxlsxで、条件付き書式を設定したいと思いました。
条件付き書式とは?
条件付き書式とは、セルの値が条件に合ったら文字の色や背景色を変えるとか、そういうのができるやつです。
よくある使い方では、テストで成績が
- 上位な人のセルは緑、
- 中位の人のセルは黄色
- 下位の人のセルは赤
にするとかですね。
Axlsxで条件付き書式を設定する
書式を定義する
まず、条件付き書式で使う書式を定義します。その際に、type: :dxf
を指定します。
サンプルコードを飛ばし読みしていたせいでここになかなか気付かなくて數十分時間を無駄にしました…。
Axlsx::Package.new do |package|
package.workbook do |workbook|
red_text = workbook.styles.add_style(
font_name: 'MS Pゴシック',
sz: 10,
fg_color: 'FF0000',
type: :dxf # ここ重要
)
end
end
条件付き書式をセルに反映する
条件付き書式をセルに反映するには、WorkSheet#add_conditional_formatting
メソッドを使います。
今回は、A列の値が0未満だったら赤文字にするという条件付き書式を設定してみます。
red_text = workbook.styles.add_style(
font_name: 'MS Pゴシック',
sz: 10,
fg_color: 'FF0000',
type: :dxf
)
workbook.add_worksheet(name: 'sheet1') do |worksheet|
# 行を入れていく処理などを行う、が省略…
# 条件付き書式を設定
worksheet.add_conditional_formatting(
"A1:A1048576",
type: :cellIs,
operator: :lessThan,
formula: '0',
dxfId: red_text,
priority: 1
)
end
その他、サンプル
サンプルは、githubにもあります。こちらのほうには様々な条件付き書式のサンプルがあるので参考にしましょう。
Author And Source
この問題について(Axlsxにて、条件付き書式を使う), 我々は、より多くの情報をここで見つけました https://qiita.com/patorash/items/45eab9c33a548c5629c9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .