- Xsv is now compatible with Ruby 2.7 through 3.4, latest JRuby, and latest TruffleRuby
- Sheet#each_row returns Enumerator when no block is given (thanks @myabc)
- Fix issue #56 with multiple nil headers
- Ignore columns with a
nil
header in hash mode
- Ruby 2.6 is no longer supported. Xsv is compatible with Ruby 2.7 through 3.3, latest JRuby, and latest TruffleRuby
- Easier access worksheets using
Xsv::Workbook#[]
andEnumerable
methods onXsv::Workbook
. The oldsheets
andsheet_by_name
method have been retained for backward compatibility. - Update of development dependencies including minitest and standardrb
- Various performance improvements, especially with YJIT on Ruby 3.3
- Handle columns without
r
attribute (issue #48) - Access sheets by UTF-8 name (thanks @sebikeller)
This release contains the following minor breaking changes
- Raise an error when entering hash mode on a sheet with duplicate headers to prevent unintentional behaviour (fixes #44)
- Xsv now returns frozen strings to further improve performance. This means it's no longer possible to call mutating methods on strings read from worksheets without unfreezing them first.
- Unescape all HTML entities in XML characters (thanks @til)
- Improve compatibility with files generated by the Open XML SDK (#40)
- New, shorter
Xsv.open
syntax as a drop-in replacement forXsv::Workbook.open
, which is still supported - Enable parsing of headers for all sheets by passing
parse_headers: true
toXsv.open
- Improvements in performance and test coverage
- Dropped support for Ruby 2.5, which is EOL. Xsv 1.1.0 supports Ruby 2.6+, latest JRuby, latest TruffleRuby
- Code cleanup, small performance improvements
- Raise exception if given an empty buffer when opening workbook (thanks @kevin-j-m)
- Support for custom date/time columns
- Handle nil number formats correctly (regression in Xsv 1.0.2, #29)
- Ignore phonetic shared string data (thanks @sinoue-1003)
- Throw ArgumentError when
Workbook.new
is called unintentionally
- Allow passing a block to Workbook.open
parse_headers!
returns self to allow chaining (thanks @senhalil)
- Xsv no longer depends on native extensions, thanks to a pure-Ruby XML parser
- Reduce allocations in XML parser
- Return strings with the correct encoding
- Handle XML entities
- Switch to a minimalistic XML parser in native Ruby (#21)
- Ruby 3.0 compatibility
- Various internal cleanup and optimization
- API is backwards compatible with 0.3.x
- Improve inline string support (#18)
- Fix parsing of empty worksheets (#17)
- Support complex numbers (#16)
- Fix issue with workbooks that don't contain shared strings (#15)
-
Allow opening workbooks from Tempfile and anything that responds to #read
-
Preserve whitespace in text cells
-
Add Sheet#hidden?
-
Clean up code; get rid of some deprecation warnings
- Accessing worksheets by name (texpert)
- Backward compatibility with Ruby 2.5 (texpert)
- Relax version requirements for dependencies
- Fix an edge case issue with row_skip and empty rows
-
Improve compatibility with files exported from LibreOffice
-
Support for boolean type
Reduce retained memory, making Xsv the definite performance king among the Ruby Excel parsing gems.
Reduce memory usage
Fix a Gemfile small Gemfile issue that broke the 0.3.3 and 0.3.4 releases
Initial version with a changelog and reasonably complete YARD documentation.