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.ExcelFileStacktrace:
[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.