The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
## What's Changed
* Bump addressable from 2.7.0 to 2.8.0 by @dependabot in https://github.com/CoreOffice/CoreXLSX/pull/154
* Fix bufferSize comment in XLSXFile by @florianreinhart in https://github.com/CoreOffice/CoreXLSX/pull/156
* Update dependencies by @ie-ahm-robox in https://github.com/CoreOffice/CoreXLSX/pull/157
* Update README.md by @Joannis in https://github.com/CoreOffice/CoreXLSX/pull/170
## New Maintainer
Max Desiatov now works at apple. @Joannis is now the maintianer
## New Contributors
* @dependabot made their first contribution in https://github.com/CoreOffice/CoreXLSX/pull/154
* @florianreinhart made their first contribution in https://github.com/CoreOffice/CoreXLSX/pull/156
* @Joannis made their first contribution in https://github.com/CoreOffice/CoreXLSX/pull/170
**Full Changelog**: https://github.com/CoreOffice/CoreXLSX/compare/0.14.1...0.14.2
This is a patch release improving compatibility with different spreadsheet formats.
**Closed issues:**
- Cannot initialize SchemaType from invalid String value `extendedProperties` ([#145](https://github.com/CoreOffice/CoreXLSX/issues/145))
- Cannot initialize SchemaType from invalid String value `workbookmetadata` ([#142](https://github.com/CoreOffice/CoreXLSX/issues/142))
**Merged pull requests:**
- Update dependencies ([#147](https://github.com/CoreOffice/CoreXLSX/pull/147)) via [@ie-ahm-robox](https://github.com/ie-ahm-robox)
- Add `purl.oclc.org` relationship schema type ([#146](https://github.com/CoreOffice/CoreXLSX/pull/146)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Add `googleWorkbookMetadata` case to relationships ([#143](https://github.com/CoreOffice/CoreXLSX/pull/143)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Add Xcode 12.3 to the `test.yml` workflow ([#144](https://github.com/CoreOffice/CoreXLSX/pull/144)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Add Xcode 12.4 to the `test.yml` workflow ([#149](https://github.com/CoreOffice/CoreXLSX/pull/149)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
This release improves compatibility with different spreadsheet formats, simplifies cell font and formatting APIs, and drops support for Carthage. Additionally, Xcode 11.3 on macOS is now the oldest supported version for building CoreXLSX.
**Breaking changes:**
- Make `parseSharedStrings` return optional value ([#122](https://github.com/CoreOffice/CoreXLSX/pull/122)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Test with Xcode 12, drop Carthage and Xcode 10 support ([#140](https://github.com/CoreOffice/CoreXLSX/pull/140)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
**Closed issues:**
- Unable to sort columns by `intValue` ([#137](https://github.com/CoreOffice/CoreXLSX/issues/137))
- Cannot initialize SchemaType from invalid String value ([#136](https://github.com/CoreOffice/CoreXLSX/issues/136))
- Odd cell.s value ([#134](https://github.com/CoreOffice/CoreXLSX/issues/134))
- 0.13.0 not available on Cocoapods ([#133](https://github.com/CoreOffice/CoreXLSX/issues/133))
- Unable to read xlsx file ([#130](https://github.com/CoreOffice/CoreXLSX/issues/130))
- Increase speed of parsing? ([#127](https://github.com/CoreOffice/CoreXLSX/issues/127))
- .xlsx File not opening with XLSXFile() ([#125](https://github.com/CoreOffice/CoreXLSX/issues/125))
- Getting Data From a specific Worksheet ([#124](https://github.com/CoreOffice/CoreXLSX/issues/124))
- ArchiveEntryNotFound error ([#121](https://github.com/CoreOffice/CoreXLSX/issues/121))
- Printing an empty cell? ([#118](https://github.com/CoreOffice/CoreXLSX/issues/118))
- Handling encrypted spreadsheets? ([#101](https://github.com/CoreOffice/CoreXLSX/issues/101))
**Merged pull requests:**
- Compare `ColumnReference` by `intValue` ([#139](https://github.com/CoreOffice/CoreXLSX/pull/139)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Add missing `SchemaType.webExtensionTaskPanes` ([#138](https://github.com/CoreOffice/CoreXLSX/pull/138)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Add `font(in:)` and `format(in:)` functions ([#135](https://github.com/CoreOffice/CoreXLSX/pull/135)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Test with Swift 5.3 for Linux ([#132](https://github.com/CoreOffice/CoreXLSX/pull/132)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Generate and publish docs with `swift-doc` ([#131](https://github.com/CoreOffice/CoreXLSX/pull/131)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Add βpersonβ to the relationship types ([#126](https://github.com/CoreOffice/CoreXLSX/pull/126)) via [@texuf](https://github.com/texuf)
- Fix parsing root relationships worksheet paths ([#123](https://github.com/CoreOffice/CoreXLSX/pull/123)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
This is a bugfix release with breaking changes that make `count` property on `MergeCells` and all properties on `Workbook.View` optional. Many thanks to [@Ethan-Chew](https://github.com/Ethan-Chew) and [@robgtsoftware](https://github.com/robgtsoftware) for reporting these issues!
**Closed issues:**
- Printing Strings in a Column ([#116](https://github.com/CoreOffice/CoreXLSX/issues/116))
- File.parseWorksheet(at: path) dies ([#94](https://github.com/CoreOffice/CoreXLSX/issues/94))
**Merged pull requests:**
- Make Workbook.View properties optional ([#120](https://github.com/CoreOffice/CoreXLSX/pull/120)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Make count optional in MergeCells ([#119](https://github.com/CoreOffice/CoreXLSX/pull/119)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
The is a bugfix release with a breaking change, it makes `size` and `font` properties optional on the `RichText.Properties` type to improve compatibility with certain spreadsheets. Thanks to [@Ethan-Chew](https://github.com/Ethan-Chew) for reporting this in [#116](https://github.com/CoreOffice/CoreXLSX/issues/116).
This is a bugfix release that resolves an issue with parsing cells that contain time values. Thanks to [@mb812](https://github.com/mb812) for reporting it!
**Closed issues:**
- Error parsing cells with Time value ([#114](https://github.com/CoreOffice/CoreXLSX/issues/114))
- `file.parseWorksheetPathsAndNames()` wanna `workbook: <#Workbook#>` ([#113](https://github.com/CoreOffice/CoreXLSX/issues/113))
- XLSXFile not initialising when passing document directory path ([#108](https://github.com/CoreOffice/CoreXLSX/issues/108))
**Merged pull requests:**
- Fix time values returned by Cell.dateValue ([#115](https://github.com/CoreOffice/CoreXLSX/pull/115)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
This is a feature release that enables compatibility with [CryptoOffice](https://github.com/CoreOffice/CryptoOffice) for decrypting spreadsheets. Additionally, with 0.11.0 you can easily get worksheet names with a new `parseWorksheetPathsAndNames` function on `XLSXFile` and get rich text values from cells with a new `richStringValue` function on `Cell`.
Due to technical issues, Swift 5.0 CI job for Linux has been removed, so compatibility with Swift 5.0 on Linux can no longer be guaranteed. While CoreXLSX may continue to work with Swift 5.0 on Linux, please update to Swift 5.1 or later to avoid unexpected issues.
Thanks to [@kobylyanets](https://github.com/kobylyanets) and [@duodo2412](https://github.com/duodo2412) for their contributions to this release!
**New APIs:**
- `XLSXFile` now provides a new initializer that takes an argument of `Data` type. This allows opening in-memory documents, the primary example being spreadsheets decrypted with [CryptoOffice](https://github.com/CoreOffice/CryptoOffice).
- `XLSXFile` now has a new `parseWorksheetPathsAndNames` function that returns an array of worksheet names and their paths in a given workbook, while previously you had to use `parseWorksheetPaths` and match paths manually with results of the `parseWorkbooks` function.
- `Cell` now has a `richStringValue` function that takes a result of the `XLSXFile.parseSharedStrings` function and produces an array of `RichText` values. This makes it easier to query rich text content from cells, while previously you had to match cell values against `SharedStrings` manually.
**Breaking change:**
Due to the introduction of the new `XLSXFile.init(data:)` initializer, the `filepath` property on `XLSXFile` no longer makes sense. This property was not used internally in any way and in-memory files don't have any filepaths. If you need to refer to a filepath of an `.xlsx` file after you've parsed from your filesystem, you should retain it manually and process it separately as you see fit.
**Closed issues:**
- API for matching sheet names to sheet paths ([#105](https://github.com/CoreOffice/CoreXLSX/issues/105))
**Merged pull requests:**
- Bump XMLCoder dependency to 0.11.1 ([#112](https://github.com/CoreOffice/CoreXLSX/pull/112)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Add data XLSXFile.init, remove filepath property ([#111](https://github.com/CoreOffice/CoreXLSX/pull/111)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Add func parseWorksheetPathsAndNames on XLSXFile ([#109](https://github.com/CoreOffice/CoreXLSX/pull/109)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Drop support for Swift 5.0 on Linux ([#110](https://github.com/CoreOffice/CoreXLSX/pull/110)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Add ability to get cell value as RichText ([#106](https://github.com/CoreOffice/CoreXLSX/pull/106)) via [@kobylyanets](https://github.com/kobylyanets)
This is a release with bugfixes and a few improvements to usability of the spreadsheet cell values API. Thanks to all contributors and users, you provide an invaluable amount of feedback and help!
**New API:**
The library now provides a simplified API to fetch string and date values from cells, which is much easier to use than the previous version (which is still available).
Here's how you can get all strings (including shared strings) in column "C" for example:
```swift
let sharedStrings = try file.parseSharedStrings()
let columnCStrings = worksheet.cells(atColumns: [ColumnReference("C")!])
.compactMap { $0.stringValue(sharedStrings) }
```
To parse a date value from a cell, use `dateValue` property on the `Cell` type:
```swift
let columnCDates = worksheet.cells(atColumns: [ColumnReference("C")!])
.compactMap { $0.dateValue }
```
**Breaking change:**
The `type` property on `Cell` is no longer of `String` type. It was previously used to check if cell's type is equal to `"s"`, which denoted a shared string. You should use enum values for that since this release, which for shared strings now is (unsurprisingly) `.sharedString`.
**Closed issues:**
- Xcode 11 installation and build ([#90](https://github.com/MaxDesiatov/CoreXLSX/issues/90))
- Reading Date values from cell ([#89](https://github.com/MaxDesiatov/CoreXLSX/issues/89))
- Can't open xml ([#82](https://github.com/MaxDesiatov/CoreXLSX/issues/82))
- Not able to read Numeric data from Sheet ([#81](https://github.com/MaxDesiatov/CoreXLSX/issues/81))
- Getting the value of a cell with number format? ([#71](https://github.com/MaxDesiatov/CoreXLSX/issues/71))
- Opening xlsx file Document Directory, Crashes ([#52](https://github.com/MaxDesiatov/CoreXLSX/issues/52))
**Merged pull requests:**
- officeDocument is misspelled in corePropreties Relationship ([#95](https://github.com/MaxDesiatov/CoreXLSX/pull/95)) via [@mrkammoun](https://github.com/mrkammoun)
- Add cell type enum, date/sharedStrings helpers ([#102](https://github.com/MaxDesiatov/CoreXLSX/pull/102)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Make XLSXFile a class, not a struct ([#100](https://github.com/MaxDesiatov/CoreXLSX/pull/100)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Clarify lack of support for .xls files in README ([#99](https://github.com/MaxDesiatov/CoreXLSX/pull/99)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Clarify Xcode 11 and Xcode 10 project details ([#98](https://github.com/MaxDesiatov/CoreXLSX/pull/98)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Update dependencies to their latest versions ([#96](https://github.com/MaxDesiatov/CoreXLSX/pull/96)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Update SwiftFormat settings, add pre-commit ([#97](https://github.com/MaxDesiatov/CoreXLSX/pull/97)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Fix workbooks with no views, cleanup tests ([#93](https://github.com/MaxDesiatov/CoreXLSX/pull/93)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Test on Xcode 11.3 with macOS 10.15 ([#92](https://github.com/MaxDesiatov/CoreXLSX/pull/92)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
- Update ZIPFoundation to 0.9.10 ([#91](https://github.com/MaxDesiatov/CoreXLSX/pull/91)) via [@MaxDesiatov](https://github.com/MaxDesiatov)
This release adds a new value to the `Relationship.SchemaType` enum, which fixes compatibility with some spreadsheet files. Thanks to [@mxcl](https://github.com/mxcl) for the bug report!
**Fixed bugs:**
- Cannot initialize SchemaType from invalid String value [\#87](https://github.com/MaxDesiatov/CoreXLSX/issues/87)
**Merged pull requests:**
- Add `case customXml` to Relationship.SchemaType [\#88](https://github.com/MaxDesiatov/CoreXLSX/pull/88) ([MaxDesiatov](https://github.com/MaxDesiatov))
This release adds Linux support and improves compatibility with `.xlsx` files that contain shared strings. Thanks to [@CloseServer](https://github.com/CloseServer), [@funnel20](https://github.com/funnel20) and [@LiewLi](https://github.com/LiewLi) for bug reports and contributions!
**Implemented enhancements:**
- Bump XMLCoder to 0.9.0, add CI jobs for Linux, Xcode 11 [\#86](https://github.com/MaxDesiatov/CoreXLSX/pull/86) ([MaxDesiatov](https://github.com/MaxDesiatov))
**Fixed bugs:**
- Multi-line text in an Excel cell is parsed into single line in the SharedStrings property `text` [\#83](https://github.com/MaxDesiatov/CoreXLSX/issues/83)
**Closed issues:**
- I crashed while calling try file.parsesharedstrings\(\) with an error [\#79](https://github.com/MaxDesiatov/CoreXLSX/issues/79)
**Merged pull requests:**
- Bump line length limit in .swiftlint.yml [\#85](https://github.com/MaxDesiatov/CoreXLSX/pull/85) ([MaxDesiatov](https://github.com/MaxDesiatov))
- Make decoder.trimValueWhitespaces false, add test [\#84](https://github.com/MaxDesiatov/CoreXLSX/pull/84) ([MaxDesiatov](https://github.com/MaxDesiatov))
- Bump XMLCoder dependency to 0.8.0 [\#80](https://github.com/MaxDesiatov/CoreXLSX/pull/80) ([MaxDesiatov](https://github.com/MaxDesiatov))
- SharedString uniqueCount property can be nil [\#78](https://github.com/MaxDesiatov/CoreXLSX/pull/78) ([LiewLi](https://github.com/LiewLi))