summaryrefslogtreecommitdiffhomepage
path: root/test/tc_axlsx.rb
diff options
context:
space:
mode:
authorJonathan Tron <[email protected]>2012-10-08 15:23:05 +0200
committerJonathan Tron <[email protected]>2012-10-08 20:34:26 +0200
commitb22c17ca4ab0ecf1b105719898decfd19f580085 (patch)
tree3b45333935fc1078becd9c1fed46cd58e5c0b31b /test/tc_axlsx.rb
parent50adffb80e0e7da5833bb9206d14350e22973d7e (diff)
downloadcaxlsx-b22c17ca4ab0ecf1b105719898decfd19f580085.tar.gz
caxlsx-b22c17ca4ab0ecf1b105719898decfd19f580085.zip
Fix worksheet name escaping and cell sorting in Axlsx.cell_range
We've discovered that Excel do not allow &apos; in defined_names to reference a worksheet name. All it does allow is to escape the simple quote by doubling it. Given that Worksheet#name is escaped using HTMLEntities, a simple quote appears as &apos; we're simply replacing it by the correct '' when using absolute reference to worksheet range.
Diffstat (limited to 'test/tc_axlsx.rb')
-rw-r--r--test/tc_axlsx.rb22
1 files changed, 20 insertions, 2 deletions
diff --git a/test/tc_axlsx.rb b/test/tc_axlsx.rb
index fe3b7edd..4901ede2 100644
--- a/test/tc_axlsx.rb
+++ b/test/tc_axlsx.rb
@@ -14,8 +14,26 @@ class TestAxlsx < Test::Unit::TestCase
}
end
- def test_cell_range
- #To do
+ def test_cell_range_empty_if_no_cell
+ assert_equal(Axlsx.cell_range([]), "")
+ end
+
+ def test_cell_range_relative
+ p = Axlsx::Package.new
+ ws = p.workbook.add_worksheet
+ row = ws.add_row
+ c1 = row.add_cell
+ c2 = row.add_cell
+ assert_equal(Axlsx.cell_range([c2, c1], false), "A1:B1")
+ end
+
+ def test_cell_range_absolute
+ p = Axlsx::Package.new
+ ws = p.workbook.add_worksheet :name => "Sheet <'>\" 1"
+ row = ws.add_row
+ c1 = row.add_cell
+ c2 = row.add_cell
+ assert_equal(Axlsx.cell_range([c2, c1], true), "'Sheet &lt;''&gt;&quot; 1'!$A$1:$B$1")
end
def test_name_to_indices