在文本超出单元格的xls文件上使用readtable时出错

时间:2017-03-17 19:04:19

标签: excel dataframe julia

我尝试过使用Taro,ExcelReaders,最后我决定使用DataFrames,因为它易于使用。我有大约2300(小)excel文件,我需要合并。每个文件都包含一系列信息,而问题的区域是允许记录的列。对于大约一半的纸张,纸币部分不会延伸给定的单元格区域,但是对于另一个~1150,它确实如此。虽然libreoffice / WPSoffice可以正常打开这些文件,但前面提到的问题导致这些文件吐出错误,因为DataFrames假设某些行中的列多于其他行。

当我进入单个文件时,选择所有字段并启用文本换行,文件被准确读取,但这不是一个很好的修复,因为有这么多文件。另外一点,我已经设置了separator ='\ t'。

有没有办法让DataFrame正确读取这些文件或其他方法来实现与在所有文件中启用文本换行相同的结果?谢谢你的帮助。

编辑:我已经发布了以下某个文件的错误。

 ERROR: Saw 114 rows, 23 columns and 2643 fields
 * Line 1 has 25 columns

 in findcorruption(::Int64, ::Int64, ::Int64, ::DataFrames.ParsedCSV) at /home/ale/.julia/v0.5/DataFrames/src/dataframe/io.jl:712
 in readtable!(::DataFrames.ParsedCSV, ::IOStream, ::Int64, ::DataFrames.ParseOptions{String,String}) at /home/ale/.julia/v0.5/DataFrames/src/dataframe/io.jl:788
 in #readtable#78(::Bool, ::Char, ::Array{Char,1}, ::Char, ::Array{String,1}, ::Array{String,1}, ::Array{String,1}, ::Bool, ::Int64, ::Array{Symbol,1}, ::Array{Any,1}, ::Bool, ::Char, ::Bool, ::Int64, ::Array{Int64,1}, ::Bool, ::Symbol, ::Bool, ::Bool, ::DataFrames.#readtable, ::IOStream, ::Int64) at /home/ale/.julia/v0.5/DataFrames/src/dataframe/io.jl:851
 in (::DataFrames.#kw##readtable)(::Array{Any,1}, ::DataFrames.#readtable, ::IOStream, ::Int64) at ./<missing>:0
 in #readtable#79(::Bool, ::Char, ::Array{Char,1}, ::Char, ::Array{String,1}, ::Array{String,1}, ::Array{String,1}, ::Bool, ::Int64, ::Array{Symbol,1}, ::Array{Any,1}, ::Bool, ::Char, ::Bool, ::Int64, ::Array{Int64,1}, ::Bool, ::Symbol, ::Bool, ::Bool, ::DataFrames.#readtable, ::String) at /home/ale/.julia/v0.5/DataFrames/src/dataframe/io.jl:945
 in (::DataFrames.#kw##readtable)(::Array{Any,1}, ::DataFrames.#readtable, ::String) at ./<missing>:0

0 个答案:

没有答案