summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--lib/axlsx/workbook/worksheet/table.rb2
-rw-r--r--test/workbook/worksheet/tc_table.rb10
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/axlsx/workbook/worksheet/table.rb b/lib/axlsx/workbook/worksheet/table.rb
index 6df71828..992486d2 100644
--- a/lib/axlsx/workbook/worksheet/table.rb
+++ b/lib/axlsx/workbook/worksheet/table.rb
@@ -80,7 +80,7 @@ module Axlsx
str << ('<autoFilter ref="' << @ref << '"/>')
str << ('<tableColumns count="' << header_cells.length.to_s << '">')
header_cells.each_with_index do |cell,index|
- str << ('<tableColumn id ="' << (index+1).to_s << '" name="' << cell.value << '"/>')
+ str << ('<tableColumn id ="' << (index+1).to_s << '" name="' << cell.clean_value << '"/>')
end
str << '</tableColumns>'
table_style_info.to_xml_string(str)
diff --git a/test/workbook/worksheet/tc_table.rb b/test/workbook/worksheet/tc_table.rb
index 8edfc099..fd6c1923 100644
--- a/test/workbook/worksheet/tc_table.rb
+++ b/test/workbook/worksheet/tc_table.rb
@@ -64,4 +64,14 @@ class TestTable < Test::Unit::TestCase
end
assert(errors.empty?, "error free validation")
end
+
+ def test_to_xml_string_for_special_characters
+ cell = @ws.rows.first.cells.first
+ cell.value = "&><'\""
+
+ table = @ws.add_table("A1:D5")
+ doc = Nokogiri::XML(table.to_xml_string)
+ errors = doc.errors
+ assert(errors.empty?, "invalid xml: #{errors.map(&:to_s).join(', ')}")
+ end
end