diff --git a/lib/elixlsx/sheet.ex b/lib/elixlsx/sheet.ex index a426991..c461889 100644 --- a/lib/elixlsx/sheet.ex +++ b/lib/elixlsx/sheet.ex @@ -25,7 +25,9 @@ defmodule Elixlsx.Sheet do group_rows: [], merge_cells: [], pane_freeze: nil, - show_grid_lines: true + show_grid_lines: true, + show_zeros: false, + fit_to_page: false @type t :: %Sheet{ name: String.t(), diff --git a/lib/elixlsx/xml_templates.ex b/lib/elixlsx/xml_templates.ex index 323d821..12c6625 100644 --- a/lib/elixlsx/xml_templates.ex +++ b/lib/elixlsx/xml_templates.ex @@ -439,17 +439,18 @@ defmodule Elixlsx.XMLTemplates do def make_sheet(sheet, wci) do grouping_info = get_grouping_info(sheet.group_rows) - ~S""" + ~s""" - + make_sheet_show_grid(sheet) <> + make_sheet_show_zeros(sheet) <> """ > """ <> @@ -488,6 +489,20 @@ defmodule Elixlsx.XMLTemplates do show_grid_lines_xml end + defp make_sheet_show_zeros(sheet) do + case sheet.show_zeros do + true -> "" + false -> ~s[ showZeros="0" ] + end + end + + defp make_sheet_fit_to_page(sheet) do + case sheet.fit_to_page do + true -> "1" + _ -> "0" + end + end + defp make_sheetview(sheet) do # according to spec: # * when only horizontal split is applied we need to use bottomLeft @@ -573,10 +588,11 @@ defmodule Elixlsx.XMLTemplates do do: 0, else: FillDB.get_id(wci.filldb, style.fill) - numfmtid = - if is_nil(style.numfmt), - do: 0, - else: NumFmtDB.get_id(wci.numfmtdb, style.numfmt) + numfmtid = case style.numfmt do + nil -> 0 + %{format: "# ##0.00"} -> 4 + f -> NumFmtDB.get_id wci.numfmtdb, f + end borderid = if is_nil(style.border),