summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--examples/auto_filter.rb11
-rw-r--r--test/workbook/worksheet/tc_worksheet.rb16
2 files changed, 25 insertions, 2 deletions
diff --git a/examples/auto_filter.rb b/examples/auto_filter.rb
index fcfe2e90..b47082cb 100644
--- a/examples/auto_filter.rb
+++ b/examples/auto_filter.rb
@@ -10,7 +10,16 @@ Axlsx::Package.new do |p|
sheet.add_row ["19.1", "1 min 32 sec", "about 10 hours ago", "1.8.7"]
sheet.add_row ["19.2", "1 min 28 sec", "about 10 hours ago", "1.9.2"]
sheet.add_row ["19.3", "1 min 35 sec", "about 10 hours ago", "1.9.3"]
- sheet.auto_filter = 'A2:D5'
+ sheet.auto_filter = 'A2:D5'
+ sheet.auto_filter.add_column 3, :filters, :filter_items => ['1.9.2']
+ end
+ p.workbook.add_worksheet(:name => "Table 2") do |sheet|
+ sheet.add_row ["Build Matrix"]
+ sheet.add_row ["Build", "Duration", "Finished", "Rvm"]
+ sheet.add_row ["19.1", "1 min 32 sec", "about 10 hours ago", "1.8.7"]
+ sheet.add_row ["19.2", "1 min 28 sec", "about 10 hours ago", "1.9.2"]
+ sheet.add_row ["19.3", "1 min 35 sec", "about 10 hours ago", "1.9.3"]
+ sheet.auto_filter = 'A2:D5'
sheet.auto_filter.add_column 3, :filters, :filter_items => ['1.9.2']
end
end.serialize('auto_filter.xlsx')
diff --git a/test/workbook/worksheet/tc_worksheet.rb b/test/workbook/worksheet/tc_worksheet.rb
index c7699e12..eb668d7f 100644
--- a/test/workbook/worksheet/tc_worksheet.rb
+++ b/test/workbook/worksheet/tc_worksheet.rb
@@ -522,15 +522,29 @@ class TestWorksheet < Test::Unit::TestCase
end
def test_auto_filter_assign
+ other_ws = @wb.add_worksheet
+
assert(@ws.auto_filter.range.nil?)
+ assert(other_ws.auto_filter.range.nil?)
assert(@wb.defined_names.none?{|defined_name| defined_name.name=='_xlnm._FilterDatabase'})
assert_raise(ArgumentError) { @ws.auto_filter = 123 }
+
@ws.auto_filter = "A1:D9"
assert_equal(@ws.auto_filter.range, "A1:D9")
+
+ other_ws.auto_filter = "A1:D2"
+ assert_equal(other_ws.auto_filter.range, "A1:D2")
+
@ws.to_xml_string
- assert(@wb.defined_names.any?{|defined_name| defined_name.name=='_xlnm._FilterDatabase'})
+ other_ws.to_xml_string
+
+ filter_database = @wb.defined_names.select{|defined_name| defined_name.name=='_xlnm._FilterDatabase'}
+ assert_equal(2, filter_database.size)
+ assert_equal(@ws.index, filter_database[0].local_sheet_id)
+ assert_equal(other_ws.index, filter_database[1].local_sheet_id)
end
+
def test_sheet_pr_for_auto_filter
@ws.auto_filter.range = 'A1:D9'
@ws.auto_filter.add_column 0, :filters, :filter_items => [1]