Quick question about ExcelFiles.jl

Does anybody know if it’s possible to use ExcelFiles.jl to save multiple sheets to a single xlsx file? I have 3 DataFrames that I would like to save as 3 separate sheets in a xlsx file.

1 Like

No, not possible at this point. That would be a great extension, though!

You might be able to do it with XLSX.jl directly (which ExcelFiles.jl uses under the hood).

I see. I’m pretty sure it’s possible to do it with XLSX.jl. I’ll have a look.

I didn’t know ExcelFiles.jl uses XLSX.jl under the hood. I was using XLSX.jl before but then switched to ExcelFiles.jl because I like its API better and because it integrates so well with the whole Queryverse story.

David, thanks a lot for your reply and all your hard work on this topic (and many others).

1 Like

See the example in the docs: Tutorial · XLSX.jl

I tried the instructions in the example you linked in order to write 3 DataFrames to 3 separate sheets in an xlsx file but, after waiting for more than 15 minutes, I just cancelled the operation. Here’s the DataFrames I’m trying to write to the xlsx file:

df_1             370.184 MiB 7708×329 DataFrame         
df_2             431.276 MiB 7708×329 DataFrame         
df_3             130.482 MiB 3857×329 DataFrame         

These DataFrames come from csv files about 40 MB in size (df_3 comes from a 12.7 MB csv file).

I guess this may be related to this issue: https://github.com/felipenoris/XLSX.jl/issues/61

Yes, writing large Excel files takes forever. I’m sorry about that.
I’ll rewrite the package to fix this.

1 Like

It seems like readme should be updated for this package, I was trying to save dataframe directly to excel file but seeing below error. Any inputs on this or please point me towards the documentation?

julia> df |> save("output.xlsx")
Error encountered while save File{DataFormat{:Excel}, String}("output.xlsx").

Fatal error:
ERROR: ExcelFiles writer error: neither save nor fileio_save is defined
  due to FileIO.SpecError(ExcelFiles, :save)
  Will try next loader.