I want to read xlsx documents. Should I use XLSX.jl, ExcelReaders.jl, Taro.jl, or XSLXReader.jl?

There seems to be a bevy of excel packages in Julia. I see that Taro and ExcelReaders use different libraries, but I’m having a hard time distinguishing and choosing between all these packages. I see that ExcelFiles.jl also exists, but seems to be an adaptor library for ExcelReaders.

Does anyone have experience with these libraries or a recommendation?

Edit with links:

3 Likes

I see that ExcelReaders uses DataValue{Union{}}() for empty cells. Is DataValues.jl an alternative for missing in Julia? What’s the benefit of not just using missing?

2 Likes

Just as an FYI, I recently avoided ExcelReaders.jl precisely because DataValue entries. I ended up exporting from excel to csv and just using CSV.jl to work with DataFrames.

3 Likes

As the developer of XLSX.jl, I would say that a unique feature of this package is the existence of deliberate hidden bugs to make this life less miserable.

1 Like
6 Likes

Have you received any feedback? I am curious how people reacts these kind of challenges.

Could you also open a little bit how this makes life less miserable? My purpose is to learn here, this something I see the first time.

1 Like

This was a joke, and I hope you understand that.
The true story is that this is a code path I wrote to speed up the package, but I’m not sure if it introduces a bug (almost certain it does), so I left this as an easter egg for curious developers.

2 Likes

I don’t understand the joke, which is always embarrassing to admit. I understood it’s humour and that’s why I asked. That’s also the reason I tried to select words in such a way that nobody would be offended (because I didn’t get the joke).

Stupid technical question: can’t you use unit testing to make sure you don’t have a bug?

2 Likes

I’m unable to trigger the bug. That’s the whole point.
I should also point out that I’m great in making bad jokes. :sweat_smile:

3 Likes