From 0146438f571c9c36f77b525164d4b190a81b4981 Mon Sep 17 00:00:00 2001 From: Koza Date: Wed, 17 Feb 2021 17:20:34 +0100 Subject: Add conditional formatting example for text equality --- examples/README.md | 1 + .../conditional_formatting_text_equal_example.md | 37 +++++++++++++++++++++ .../conditional_formatting_text_equal_example.png | Bin 0 -> 24727 bytes 3 files changed, 38 insertions(+) create mode 100644 examples/conditional_formatting_text_equal_example.md create mode 100644 examples/images/conditional_formatting_text_equal_example.png diff --git a/examples/README.md b/examples/README.md index 5b1abdc2..f1ab1d5b 100644 --- a/examples/README.md +++ b/examples/README.md @@ -34,6 +34,7 @@ Usage: * [Color scale](conditional_formatting_color_scale_example.md) * [Data bar](conditional_formatting_data_bar_example.md) * [Icon set](conditional_formatting_icon_set_example.md) +* [Text equal](conditional_formatting_text_equal_example.md) ### Charts diff --git a/examples/conditional_formatting_text_equal_example.md b/examples/conditional_formatting_text_equal_example.md new file mode 100644 index 00000000..0d7bd8d7 --- /dev/null +++ b/examples/conditional_formatting_text_equal_example.md @@ -0,0 +1,37 @@ +## Description + +Conditional format example: Text equal + +1. You must specify `:containsText` for both type and operator. +2. You must craft a formula to match what you are looking for. The formula needs to reference the top-left cell of the range (the cell reference will be dynamically adapted when the formula gets evaluated for the other cells in the range). +3. The formula may turn out to be vendor specific. You will want to test extensively if interoperability beyond excel is a concern. + +## Code + +```ruby +require 'axlsx' + +p = Axlsx::Package.new +wb = p.workbook + +s = wb.styles +profit = s.add_style bg_color: 'FF428751', type: :dxf + +wb.add_worksheet(name: 'Text Matching Conditional') do |sheet| + sheet.add_row ["Loss", "Loss", "Profit", "Loss", "Profit", "Loss", "Profit", "Loss", "Profit", "Profit"] + + # Highlight all the cells containing the text "Profit" + sheet.add_conditional_formatting('A1:J1', + type: :containsText, + operator: :containsText, + formula: 'NOT(ISERROR(SEARCH("Profit",A1)))', + dxfId: profit, + priority: 1) +end + +p.serialize 'conditional_formatting_text_equal_example.xlsx' +``` + +## Output + +![Output](images/conditional_formatting_text_equal_example.png "Output") diff --git a/examples/images/conditional_formatting_text_equal_example.png b/examples/images/conditional_formatting_text_equal_example.png new file mode 100644 index 00000000..60cfaf92 Binary files /dev/null and b/examples/images/conditional_formatting_text_equal_example.png differ -- cgit v1.2.3