queryverse / ExcelFiles.jl

FileIO.jl integration for Excel files

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DataFrame(load("file.xlsx", "sheetname")) not working

cossio opened this issue · comments

After a recent update in DataFrames v0.18, the line DataFrame(load("file.xlsx", "sheetname")) no longer works to read an Excel file into a DataFrame. I get the following error:

ArgumentError: no default Tables.columns implementation for type: ExcelFiles.ExcelFile

Stacktrace:
[1] #DataFrame#365(::Bool, ::Type, ::ExcelFiles.ExcelFile) at .julia/packages/Tables/qlc3J/src/fallbacks.jl:156
[2] DataFrame(::ExcelFiles.ExcelFile) at .julia/packages/DataFrames/dXFYy/src/other/tables.jl:20

It seems ExcelFiles needs to update to use the Tables API.

AFAICT that's a problem in Tables.jl. Since JuliaData/Tables.jl#84, Tables.columns checks Base.isiterable(T) instead of istable(x), which doesn't take into account TableTraits.isiterabletable(x). Yet ExcelFile defines the latter, but not the former.

I have a possible fix at JuliaData/Tables.jl#89.