diff options
| -rw-r--r-- | lib/axlsx/workbook/worksheet/table.rb | 2 | ||||
| -rw-r--r-- | test/workbook/worksheet/tc_table.rb | 10 |
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 |
