Fix empty sheets scenario for excel snippet (#2586)

This commit is contained in:
Victor Rodrigues 2024-04-29 13:14:38 +02:00 committed by GitHub
parent dd107e5d19
commit fdac5cfe4f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -67,7 +67,7 @@ defmodule Livebook.Runtime.Definitions do
xlsx_reader = %{ xlsx_reader = %{
name: "xlsx_reader", name: "xlsx_reader",
dependency: %{dep: {:xlsx_reader, "~> 0.8.3"}, config: []} dependency: %{dep: {:xlsx_reader, "~> 0.8.4"}, config: []}
} }
windows? = match?({:win32, _}, :os.type()) windows? = match?({:win32, _}, :os.type())
@ -427,9 +427,15 @@ defmodule Livebook.Runtime.Definitions do
tabs = tabs =
for sheet <- XlsxReader.sheet_names(package) do for sheet <- XlsxReader.sheet_names(package) do
# Assume the first row contains column names maps =
{:ok, [header | rows]} = XlsxReader.sheet(package, sheet) case XlsxReader.sheet(package, sheet) do
maps = Enum.map(rows, fn row -> header |> Enum.zip(row) |> Map.new() end) {:ok, []} ->
[]
{:ok, [header | rows]} ->
Enum.map(rows, fn row -> header |> Enum.zip(row) |> Map.new() end)
end
{sheet, Kino.DataTable.new(maps)} {sheet, Kino.DataTable.new(maps)}
end end