From 2b19dba7cc8f19f47594b90ea9fb7888678b0224 Mon Sep 17 00:00:00 2001 From: Erik Veijola Date: Tue, 28 Jul 2015 15:18:09 +0300 Subject: workbook.rb: added possibility to reverse the serialization order of workbook Signed-off-by: Erik Veijola --- lib/axlsx/workbook/workbook.rb | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/axlsx/workbook/workbook.rb b/lib/axlsx/workbook/workbook.rb index 784ee0b4..ddb13600 100644 --- a/lib/axlsx/workbook/workbook.rb +++ b/lib/axlsx/workbook/workbook.rb @@ -96,6 +96,15 @@ require 'axlsx/workbook/worksheet/selection.rb' @use_shared_strings = v end + # If true reverse the order in which the workbook is serialized + # @return [Boolean] + attr_reader :is_reversed + + def is_reversed=(v) + Axlsx::validate_boolean(v) + @is_reversed = v + end + # A collection of worksheets associated with this workbook. # @note The recommended way to manage worksheets is add_worksheet @@ -344,7 +353,11 @@ require 'axlsx/workbook/worksheet/selection.rb' str << ('') views.to_xml_string(str) str << '' - worksheets.each { |sheet| sheet.to_sheet_node_xml_string(str) } + if is_reversed + worksheets.reverse_each { |sheet| sheet.to_sheet_node_xml_string(str) } + else + worksheets.each { |sheet| sheet.to_sheet_node_xml_string(str) } + end str << '' defined_names.to_xml_string(str) unless pivot_tables.empty? -- cgit v1.2.3