CoreXLSX v0.4.0 Release Notes

Release Date: 2019-02-07 // about 5 years ago
  • 🚀 This is a release with API improvements and bug fixes. A big thank you to everyone 🚀 who provided bug reports and contributions that made this release possible!

    💥 Breaking changes:

    • 👍 A few properties on the model types were added with cleaner names and better fitting types. Most of the old versions of those properties were kept as deprecated, but you might get some breakage with optionality, where we couldn't find a good deprecation path.

    Additions:

    • 🆕 New parseSharedStrings function on XLSXFile allows you get values of cells with shared string value. Quite frequently those strings are unavailable and are only referenced in the original model types you get with parseWorksheet.

    • Previously when addressing cells and columns you had to use a stringly-typed API. It was also not very convenient for specifying a range of columns. This is now fixed with the new type-safe ColumnReference struct, which conforms to Comparable and Strideable.

    • Following the addition of an error context to XMLCoder, which is the main dependency of CoreXLSX, it is now exposed on struct XLSXFile. Pass a non-zero value to errorContextLength argument (default is 0) of XLSXFile initializer and you'll get a snippet of XML that failed to parse in the debug description of the error value.

    • ➕ Additional optional argument bufferSize was added to XLSXFile initializer as a response to previous reports about problems with zip file extraction. The default value is 10 MiB, which seems to be enough in most cases, but you can still try passing a larger value for bigger files if you see that an XML file stops abruptly in the middle of the file. Unfortunately, we haven't found a good way to adjust this value dynamically based on the file size, but a sufficiently large value should work for all files, which is the default.

    • 👌 Support for Carthage was added as well as support for tvOS and watchOS.

    🛠 Bugfixes:

    📜 Some files that couldn't be previously parsed should now be handled better 🛠 thanks to fixes in optionality and more properties added to the model types.

    All changes:

    • Set global version in project file, bump to 0.4.0 (#39) (MaxDesiatov)
    • ⚡️ Update README.md (#40) @chriseidhof
    • 🔦 Expose errorContextLength on struct XLSXFile (#38) (MaxDesiatov)
    • ➕ Add customProperties relationship (#34) (NSMutableString)
    • ⚡️ Update XMLCoder and ZIPFoundation dependencies (#36) (MaxDesiatov)
    • ⚡️ Update requirements in README.md (MaxDesiatov)
    • ➕ Add extra relationship metadataThumbnail (#33) (NSMutableString)
    • 🔨 Refactor Worksheet and Pane values to optional (#31) (hodovani)
    • ➕ Add bufferSize parameter to init (#30) (hodovani)
    • ➕ Add more cases to Relationship.SchemaType (#25) (MaxDesiatov)
    • ➕ Add public func parseDocumentRelationships (#23) (MaxDesiatov)
    • 📜 Make Relationships public, add parseRelationships (#22) (MaxDesiatov)
    • ➕ Add SharedStrings model, parse sharedStrings.xml (#8) (MaxDesiatov)
    • ✅ Paste XML snippet into WorksheetTests as is (MaxDesiatov)
    • ➕ Add a second XML snippet to WorksheetTests (MaxDesiatov)
    • Clarify issue reporting in README.md (MaxDesiatov)
    • ✅ Test newspaces in attributes in WorksheetTests (MaxDesiatov)
    • ✅ More XML with newlines in WorksheetTests (MaxDesiatov)
    • ➕ Add newline characters test to WorksheetTests (MaxDesiatov)
    • ➕ Add cell with a single attribute to WorksheetTests (MaxDesiatov)
    • ➕ Add rows and cells to WorksheetTests (MaxDesiatov)
    • ⚡️ Update names and types of properties on Worksheet (#18) (MaxDesiatov)
    • 📇 Rename sheetData on Worksheet and make it optional (#17) (MaxDesiatov)
    • ➕ Add simple Workbook model with tests (#16) (MaxDesiatov)
    • 👉 Make columns property optional on Worksheet (#14) (MaxDesiatov)
    • 🛠 Fix example project after new files were added (#13) (MaxDesiatov)
    • ✂ Remove worksheetCache private property as unused (#11) (MaxDesiatov)
    • Clarify platform setting for CocoaPods in README (MaxDesiatov)
    • Clarify Carthage instructions in README.md (MaxDesiatov)
    • ➕ Add API for filtering cells by rows and columns (#7) (MaxDesiatov)
    • ➕ Add Carthage and support for tvOS and watchOS (#6) (MaxDesiatov)
    • Implement Strideable on ColumnReference (#5) (MaxDesiatov)
    • ➕ Add ColumnReference type with new API (#3) (MaxDesiatov)