From c71a735991b3ab1bf8f5ead894476898e70c7700 Mon Sep 17 00:00:00 2001 From: rikweelvoormedia <124180780+rikweelvoormedia@users.noreply.github.com> Date: Tue, 15 Aug 2023 09:30:15 +0200 Subject: Added sorting to the AutoFilter class - add sort conditions to the xml (#286) --------- Co-authored-by: SarahVanHaute <124184392+SarahVanHaute@users.noreply.github.com> Co-authored-by: Geremia Taglialatela --- examples/images/sort_state_example_1.png | Bin 0 -> 62716 bytes examples/images/sort_state_example_2.png | Bin 0 -> 64787 bytes examples/sort_state_example.md | 42 +++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 examples/images/sort_state_example_1.png create mode 100644 examples/images/sort_state_example_2.png create mode 100644 examples/sort_state_example.md (limited to 'examples') diff --git a/examples/images/sort_state_example_1.png b/examples/images/sort_state_example_1.png new file mode 100644 index 00000000..fb13d387 Binary files /dev/null and b/examples/images/sort_state_example_1.png differ diff --git a/examples/images/sort_state_example_2.png b/examples/images/sort_state_example_2.png new file mode 100644 index 00000000..c84b6848 Binary files /dev/null and b/examples/images/sort_state_example_2.png differ diff --git a/examples/sort_state_example.md b/examples/sort_state_example.md new file mode 100644 index 00000000..d0258c31 --- /dev/null +++ b/examples/sort_state_example.md @@ -0,0 +1,42 @@ +## Description + +You could add sort conditions to the sort state of an auto filtered table + +## Code + +```ruby +require 'axlsx' + +p = Axlsx::Package.new +wb = p.workbook + +wb.add_worksheet(name: 'Sort State') do |sheet| + sheet.add_row ['Number', 'Letter', 'Priority'] + sheet.add_row [1, 'B', 'high'] + sheet.add_row [2, 'B', 'low'] + sheet.add_row [3, 'B', 'medium'] + sheet.add_row [4, 'B', 'high'] + sheet.add_row [5, 'B', 'low'] + sheet.add_row [6, 'B', 'medium'] + sheet.add_row [7, 'A', 'high'] + sheet.add_row [8, 'A', 'low'] + sheet.add_row [9, 'A', 'medium'] + sheet.add_row [10, 'A', 'high'] + sheet.add_row [11, 'A', 'low'] + sheet.add_row [12, 'A', 'medium'] + sheet.auto_filter = 'A1:C13' + sheet.auto_filter.sort_state.add_sort_condition column_index: 1 + sheet.auto_filter.sort_state.add_sort_condition column_index: 2, custom_list: ['low', 'medium', 'high'] + sheet.auto_filter.sort_state.add_sort_condition column_index: 0, order: :desc +end + +p.serialize 'sort_state_example.xlsx' +``` + +## Output + +![Output](images/sort_state_example_1.png "Output") + +After adding the sort conditions: + +![Output](images/sort_state_example_2.png "Output") -- cgit v1.2.3