Skip to content

Releases: tafia/calamine

v0.31.0 - 2025-09-27

27 Sep 18:10

Choose a tag to compare

Changed

  • Upgraded quick-xml to v0.38. This was a significant change in quick-xml
    relative to v0.37 and required changes in calamine to entity handling. It
    also fixes EOL handling which may lead to regressions in calamine
    applications if they expected to see "\r\n" in strings instead of the
    correct (for XML and Excel) "\n".

    For most users these will be inconsequential changes but please take note
    before upgrading production code.

  • Renamed the "dates" feature flag to "chrono" since there is now some
    native date handling features without "chrono". The "chrono" flag is more
    specific and accurate. The "dates" flag is still supported as before for
    backward compatibility.

    This change also made some datatype methods related to date/times available in
    the "default" feature set. They were previously hidden unnecessarily behind
    the "dates/"chrono" flag.

Added

  • Added a conversion function to ExcelDateTime to convert the inner serial
    Excel datetime to standard year, month, date, hour, minute, second and
    millisecond components. Works for 1900 and 1904 epochs.

Fixed

  • Fixed issue where Excel xlsx shared formula failed if it contained Unicode
    characters. Issue #553.

  • Fixed issue where Excel XML escapes in strings weren't unescaped. For example
    "_x000D_" -> "\r". Issue #469.

What's Changed

New Contributors

Full Changelog: v0.30.1...v0.31.0

v0.30.1 - 2025-09-06

06 Sep 16:15

Choose a tag to compare

Added

  • Added Debug and Clone to Table for easier debugging. PR #547.

Fixed

  • Fixed issue Issue #548 for xls files where the SST record had an incorrect
    number of unique strings.

What's Changed

Full Changelog: v0.30.0...v0.30.1

v0.30.0 - 2025-08-07

07 Aug 08:33

Choose a tag to compare

Changed

  • Unpinned the zip.rs dependency from v4.2.0 to allow cargo to choose the
    correct version for the user's rustc version.

    The Rust MSRV was bumped to v1.75.0 (which it should have been for for
    zip.rs compatibility in previous releases).

    See the discussion at Issue #527.

What's Changed

  • small language changes to README.md by @mhogervo in #537
  • Fix typos and add typos GH Actions workflow to prevent future typos by @jqnatividad in #539
  • unpin zip and using MSRV-aware in CI by @Dirreke in #542

New Contributors

Full Changelog: v0.29.0...v0.30.0

v0.29.0 - 2025-07-17

17 Jul 10:46

Choose a tag to compare

Added

  • Add additional documentation and examples for the Range, Cell, XlsxError
    and Table structs, and Xlsx Table and Merge methods. Issue #459

Changed

  • Pin zip.rs to v4.2.0.

    The current latest release of zip.rs, v4.3.0, requires a MSRV of v1.85.0.
    This release pins zip.rs to v4.2.0 to allow users to maintain a MSRV of
    v1.73.0 for at least one more release. It is likely that calamine v0.30.0 or
    later will move back to the latest zip.rs v4.x and require rustc v1.85.0.

Fixed

  • Fixed issue where XLSX files had Windows style directory separators for
    internal paths instead of the required Unix style separators. Issue #530.
  • Fixed several XLS parsing issues which could lead to out-of-memory errors. PR
    #525.
  • Fixed numeric underflow in Xlsx::from_sparse() and also ensured that the
    associated Range of cells would be in row-column order. PR #524.

What's Changed

New Contributors

Full Changelog: v0.28.0...v0.29.0

v0.28.0 - 2025-06-19

04 Jul 23:36
61fc9b1

Choose a tag to compare

Changed

  • Bump zip to 4.0.

What's Changed

New Contributors

Full Changelog: v0.27.0...v0.28.0

v0.27.0 - 2025-04-22

04 Jul 23:37

Choose a tag to compare

Added

  • (xls): add one more Error variant related to formatting.

Changed

  • Bump dependencies.

Fixed

  • (xls): Invalid formats parsing.
  • Always parse string cell as string.
  • Pin zip crate to 2.5.
  • (xlsx): check 'closing' tag name with more prefixes.

What's Changed

New Contributors

Full Changelog: v0.26.1...v0.27.0

v0.26.1 - 2024-10-10

04 Jul 23:38

Choose a tag to compare

Fixed

  • Sparse cells expect 0 index rows, even when using header_row.

What's Changed

Full Changelog: v0.26.0...v0.26.1

v0.26.0 - 2024-10-08

04 Jul 23:39

Choose a tag to compare

Added

  • Ability to merge cells from xls and xlsx.
  • Options to keep first empty rows for xlsx.
  • Support consecutive repeated empty cells for ods.
  • New header_row config.

Changed

  • Bump MSRV to 1.73.
  • Fix broken links in README.
  • Enable dates and pictures features in docs.rs build.
  • Fix broken fuzzer.

What's Changed

New Contributors

Full Changelog: v0.25.0...v0.26.0

v0.25.0 - 2024-05-25

04 Jul 23:40
1e65739

Choose a tag to compare

Added

  • Add is_error and get_error methods to the DataType trait.
  • Add deserializer helper functions.
  • Support getting merged region.
  • Range::headers method.
  • Expose some Dimensions methods.

Changed

  • Use OnceLock instead of once_cell crate (MSRV: 1.71).

Fixed

  • Use case insensitive comparison when searching for file in xlsx.
  • Do not panic when reading cell format with invalid index.

What's Changed

New Contributors

Full Changelog: v0.24.0...v0.25.0

v0.24.0 - 2024-02-08

04 Jul 23:41

Choose a tag to compare

Added

  • Introduce a DataType trait implemented by both Data and DataRef.
  • Data and DataType now return Some(0{.0}) and Some(1{.0}) rather than
    None when .as_i64 or .as_f64 is used on a Bool value.
  • Detect xlsb/ods password protected files.
  • Introduce is_x methods for date and time variants.

Changed

  • BREAKING: rename DataType enum to Data and DataTypeRef to DataRef.
  • DateTime(f64) to DateTime(ExcelDateTime).

Fixed

  • Getting tables names from xlsx workbooks without _rels files.

What's Changed

New Contributors

Full Changelog: v0.23.1...v0.24.0