# Breaking ExcelReaders.jl update

**URL:** <https://discourse.julialang.org/t/breaking-excelreaders-jl-update/10624>\
**Category:** Data\
**Tags:** announcement\
**Created:** [April 30, 2018, 5:22pm UTC](https://discourse.julialang.org/t/breaking-excelreaders-jl-update/10624 "2018-04-30T17:22:35Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)\
**Post date:** [April 30, 2018, 5:22pm UTC](https://discourse.julialang.org/t/breaking-excelreaders-jl-update/10624/1 "2018-04-30T17:22:35Z")

</div>

Hi everyone,

just a heads up that I’ve just released a new version of [ExcelReaders.jl](https://github.com/davidanthoff/ExcelReaders.jl) that is breaking. The new version removes all support for [DataFrames.jl](https://github.com/JuliaData/DataFrames.jl) and no longer uses [DataArrays.jl](https://github.com/JuliaStats/DataArrays.jl).

But, fear not, you can still read Excel data into tables like `DataFrame`! You’ll have to use a different package for that going forward, though: [ExcelFiles.jl](https://github.com/davidanthoff/ExcelFiles.jl).

The main benefit of these changes are: a) [ExcelReaders.jl](https://github.com/davidanthoff/ExcelReaders.jl) no longer keeps you from getting new versions of [DataFrames.jl](https://github.com/JuliaData/DataFrames.jl) (the old version was not compatible with [DataFrames.jl](https://github.com/JuliaData/DataFrames.jl) v0.11), b) instead of special casing things for [DataFrames.jl](https://github.com/JuliaData/DataFrames.jl), all the 18 sink types from [IterableTables.jl](https://github.com/davidanthoff/IterableTables.jl) are equally supported. So the default solution allows you to read things into [DataFrames.jl](https://github.com/JuliaData/DataFrames.jl), [JuliaDB.jl](https://github.com/JuliaComputing/JuliaDB.jl), [Pandas.jl](https://github.com/JuliaPy/Pandas.jl) and all the other supported sinks. Plus, everything should work with the latest [DataFrames.jl](https://github.com/JuliaData/DataFrames.jl) version.

I’m sorry to break things (I try really, really hard to not make any breaking changes in the Queryverse). But the changes in [DataFrames.jl](https://github.com/JuliaData/DataFrames.jl) v0.11 meant that things would break no matter what, so I used that occasion to clean out the relationship between [ExcelReaders.jl](https://github.com/davidanthoff/ExcelReaders.jl) and [ExcelFiles.jl](https://github.com/davidanthoff/ExcelFiles.jl) properly.

Cheers,  
David

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [April 30, 2018, 5:54pm UTC](https://discourse.julialang.org/t/breaking-excelreaders-jl-update/10624/2 "2018-04-30T17:54:20Z")

</div>

Thanks @davidanthoff, I would like to share another alternative by @felipenoris that is in pure Julia: [GitHub - felipenoris/XLSX.jl: Excel file reader and writer for the Julia language.](https://github.com/felipenoris/XLSX.jl) It doesn’t require external libraries or other interpreters like Python to function. It seems like it is faster too, which is great.

I see benefit in joining efforts to make it FileIO-compatible. 👍

---

<div class="post-metadata">

**Author:** ![bbrunaud](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bbrunaud/32/1737_2.png) [@bbrunaud](https://discourse.julialang.org/u/bbrunaud)\
**Post date:** [May 7, 2018, 4:43am UTC](https://discourse.julialang.org/t/breaking-excelreaders-jl-update/10624/3 "2018-05-07T04:43:28Z")

</div>

I also gave a shot to the implementation in pure Julia. Using `EzXML` and `ZipFile`. [XLSXread.jl](https://github.com/bbrunaud/XLSXread.jl). I wrote it when I was working with large files and both `ExcelReaders` and `Taro` where too slow and I also run out of memory.

I found it was also useful provide the ability to read an entire file at once for performance issues. I wrote it for my personal issue and I have no intent of pushing it further. Feel free to use anything you find useful in the code.

cheers!
