diff options
| author | Randy Morgan (@morgan_randy) <[email protected]> | 2012-09-15 19:55:05 -0700 |
|---|---|---|
| committer | Randy Morgan (@morgan_randy) <[email protected]> | 2012-09-15 19:55:05 -0700 |
| commit | 54e3e2f157df97e6edebaca3510fb0603be432a9 (patch) | |
| tree | 33d93aad521064f1c058807fbded00613cf0ebe2 | |
| parent | 55a0dd9d3b522876dc97e109b2d38b261cdaf752 (diff) | |
| parent | 07b52a07a2257a606ad9c34409954f75317a3288 (diff) | |
| download | caxlsx-54e3e2f157df97e6edebaca3510fb0603be432a9.tar.gz caxlsx-54e3e2f157df97e6edebaca3510fb0603be432a9.zip | |
Merge pull request #129 from ebenoist/master
Fix for issue 127
| -rw-r--r-- | lib/axlsx/workbook/worksheet/worksheet.rb | 9 | ||||
| -rw-r--r-- | test/workbook/worksheet/tc_worksheet.rb | 7 |
2 files changed, 15 insertions, 1 deletions
diff --git a/lib/axlsx/workbook/worksheet/worksheet.rb b/lib/axlsx/workbook/worksheet/worksheet.rb index ea3a0d1a..e122a588 100644 --- a/lib/axlsx/workbook/worksheet/worksheet.rb +++ b/lib/axlsx/workbook/worksheet/worksheet.rb @@ -497,7 +497,14 @@ module Axlsx item.to_xml_string(str) if item end str << '</worksheet>' - str.gsub(/[[:cntrl:]]/,'') + + if RUBY_VERSION == "1.8.7" + nasty_control_char_matcher = Regexp.new("[\x01\x02\x03\x04\x05\x06\x07\x08\x1F\v\xE2]") + else + nasty_control_char_matcher = Regexp.new("[\x01\x02\x03\x04\x05\x06\x07\x08\x1F\v\u2028]") + end + + str.gsub(nasty_control_char_matcher,'') end # The worksheet relationships. This is managed automatically by the worksheet diff --git a/test/workbook/worksheet/tc_worksheet.rb b/test/workbook/worksheet/tc_worksheet.rb index 8147e18e..a57fa811 100644 --- a/test/workbook/worksheet/tc_worksheet.rb +++ b/test/workbook/worksheet/tc_worksheet.rb @@ -324,6 +324,13 @@ class TestWorksheet < Test::Unit::TestCase assert_equal(0, @ws.rows.last.cells.last.value.index("\v")) assert_equal(nil,@ws.to_xml_string.index("\v")) end + + def test_to_xml_string_with_newlines + cell_with_newline = "foo\n\r\nbar" + @ws.add_row [cell_with_newline] + assert_equal("foo\n\r\nbar", @ws.rows.last.cells.last.value) + assert_not_nil(@ws.to_xml_string.index("foo\n\r\nbar")) + end # Make sure the XML for all optional elements (like pageMargins, autoFilter, ...) # is generated in correct order. def test_valid_with_optional_elements |
