diff --git a/example.exs b/example.exs index 25494e2..f96313f 100755 --- a/example.exs +++ b/example.exs @@ -47,6 +47,10 @@ sheet1 = Sheet.with_name("First") |> Sheet.set_cell("A2", "cat") |> Sheet.set_cell("A3", "cow") |> Sheet.add_data_validations("A1", "A10", ["dog", "cat", "cow"]) + # within same sheet + |> Sheet.add_data_validations("A1", "A10", "=$A$2:$A$16") + # reference to other sheet "=#{sheet.name}!$A$2:$A$16" + |> Sheet.add_data_validations("A1", "A10", "=sheet2!$A$2:$A$16") workbook = %Workbook{sheets: [sheet1]} diff --git a/lib/elixlsx/sheet.ex b/lib/elixlsx/sheet.ex index e7d0878..40cddd2 100644 --- a/lib/elixlsx/sheet.ex +++ b/lib/elixlsx/sheet.ex @@ -41,7 +41,7 @@ defmodule Elixlsx.Sheet do merge_cells: [{String.t(), String.t()}], pane_freeze: {number, number} | nil, show_grid_lines: boolean(), - data_validations: list({String.t(), String.t(), list(String.t())}) + data_validations: list({String.t(), String.t(), list(String.t()) | String.t()}) } @type rowcol_group :: Range.t() | {Range.t(), opts :: keyword} diff --git a/lib/elixlsx/xml_templates.ex b/lib/elixlsx/xml_templates.ex index cd49b10..2d79c7a 100644 --- a/lib/elixlsx/xml_templates.ex +++ b/lib/elixlsx/xml_templates.ex @@ -300,6 +300,16 @@ defmodule Elixlsx.XMLTemplates do """ end + defp make_data_validation({start_cell, end_cell, values}) when is_bitstring(values) do + """ + + #{values} + + """ + end + defp make_data_validation({start_cell, end_cell, values}) do joined_values = values