Skip to content

Conversation

@TimG1964
Copy link

@TimG1964 TimG1964 commented Nov 13, 2025

ExcelReaders.jl no longer supports .xlsx files, meaning that FileIO can no longer read data from Excel files. This PR removes this redundant dependence and instead uses XLSX.jl for reading - it is already used for writing.

There are a few points to note about this switch:

  • The function signature for FileIO.load has changed. Instead of a single range, two arguments supply the sheet and the columns. Both are optional. There are further changes to the supported keyword arguments. These may technically be breaking changes but the functionality is already broken, so I think it doesn't matter here!
  • XLSX.jl doesn't return a special value for cells containing an error (see this issue of XLSX.jl). Instead, these simply return missing, which FileIO returns as DataValue(). I've updated tests to reflect this.
  • XLSX.jl is at version 0.10.4. It merged some substantial changes a while ago, but no new release has yet been made. A couple of tests will be affected by this (as follows).
  • The eltypes are not currently inferred on reading a table but they will be by default in v0.11.0. This changes the results of the two show tests.
  • In v0.11.0 it will be possible to normalizenames for column names that are problematic. This changes the result of the test for reading data with a missing column name. I've included normalizenames in the Readme even though it won't be available until v0.11.0 is released.

Where behaviour will change on release of v0.11.0, I've included tests for both versions (there are only three such tests) but have simply commented out the v0.11.0 tests. If/when a new version is released, it should be simple just to swap the commented lines.

Lastly, the third show test produces an output that is truncated. This seems to me to be a little brittle (don't know though!?) so I've commented it out.

@TimG1964
Copy link
Author

TimG1964 commented Dec 8, 2025

It would be good to get some feedback on this PR. For example:

  • Is it wanted/useful at all?
  • Have I misunderstood something fundamental about the FileIO ecosystem?
  • Does it need to wait for XLSX.jl v0.11.0 to be released?
  • Do I just need to be more patient?

Just looking for a little guidance to temper my expectations!

If it is accepted (and once XLSX.jl does make a release), I will quickly be able to make another PR to address #12. I think between both PRs most of the outstanding issues will be resolved. Two marked as enhancements (#34 and #38) might be handed off to XLSX.jl in any case - they are arguably out of scope of this package.

I could also make a PR to streamline the tests if that would be helpful...

Happy to take guidance.

Thanks

Tim

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant