From 918b3f51569521b3a8767d4f1c07bfebc7420b57 Mon Sep 17 00:00:00 2001 From: Leandro Cesquini Pereira Date: Mon, 4 Oct 2021 10:34:10 -0400 Subject: [PATCH 1/2] Add support for Decimal --- lib/elixlsx/xml_templates.ex | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/elixlsx/xml_templates.ex b/lib/elixlsx/xml_templates.ex index e9ea6c0..49645f0 100644 --- a/lib/elixlsx/xml_templates.ex +++ b/lib/elixlsx/xml_templates.ex @@ -175,6 +175,12 @@ defmodule Elixlsx.XMLTemplates do defp split_into_content_style(cell, _wci), do: {cell, 0, nil} + if Code.ensure_loaded?(Decimal) do + defp get_content_type_value(%Decimal{} = content, _wci) do + {"n", Decimal.to_string(content, :normal)} + end + end + defp get_content_type_value(content, wci) do case content do {:excelts, num} -> From a5af55ed6c6ab80e22ce636434094b15862a9e0b Mon Sep 17 00:00:00 2001 From: Leandro Cesquini Pereira Date: Wed, 6 Oct 2021 10:08:48 -0400 Subject: [PATCH 2/2] Make it explicit but optional and mitigate conflicts --- lib/elixlsx/xml_templates.ex | 2 +- mix.exs | 1 + mix.lock | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/elixlsx/xml_templates.ex b/lib/elixlsx/xml_templates.ex index 49645f0..8cf291e 100644 --- a/lib/elixlsx/xml_templates.ex +++ b/lib/elixlsx/xml_templates.ex @@ -175,7 +175,7 @@ defmodule Elixlsx.XMLTemplates do defp split_into_content_style(cell, _wci), do: {cell, 0, nil} - if Code.ensure_loaded?(Decimal) do + if Code.ensure_loaded?(Decimal) and function_exported?(Decimal, :to_string, 2) do defp get_content_type_value(%Decimal{} = content, _wci) do {"n", Decimal.to_string(content, :normal)} end diff --git a/mix.exs b/mix.exs index fade930..b2a552a 100644 --- a/mix.exs +++ b/mix.exs @@ -24,6 +24,7 @@ defmodule Elixlsx.Mixfile do defp deps do [ + {:decimal, "~> 1.6 or ~> 2.0", optional: true}, {:excheck, "~> 0.5", only: :test}, {:triq, "~> 1.0", only: :test}, {:credo, "~> 0.5", only: [:dev, :test]}, diff --git a/mix.lock b/mix.lock index 34c8123..a2dff6b 100644 --- a/mix.lock +++ b/mix.lock @@ -1,6 +1,7 @@ %{ "bunt": {:hex, :bunt, "0.1.6", "5d95a6882f73f3b9969fdfd1953798046664e6f77ec4e486e6fafc7caad97c6f", [:mix], [], "hexpm", "4fb7b2f7b04af13cf210b132f8d10db52d4a57d36cb974e8025d7fdb12ca97fc"}, "credo": {:hex, :credo, "0.5.3", "0c405b36e7651245a8ed63c09e2d52c2e2b89b6d02b1570c4d611e0fcbecf4a2", [:mix], [{:bunt, "~> 0.1.6", [hex: :bunt, repo: "hexpm", optional: false]}], "hexpm", "90bca5180fe64c47343969ad3e32bf1edc18d929689e8c00c810655a7a391427"}, + "decimal": {:hex, :decimal, "2.0.0", "a78296e617b0f5dd4c6caf57c714431347912ffb1d0842e998e9792b5642d697", [:mix], [], "hexpm", "34666e9c55dea81013e77d9d87370fe6cb6291d1ef32f46a1600230b1d44f577"}, "dialyxir": {:hex, :dialyxir, "0.5.1", "b331b091720fd93e878137add264bac4f644e1ddae07a70bf7062c7862c4b952", [:mix], [], "hexpm", "6c32a70ed5d452c6650916555b1f96c79af5fc4bf286997f8b15f213de786f73"}, "earmark": {:hex, :earmark, "1.3.1", "73812f447f7a42358d3ba79283cfa3075a7580a3a2ed457616d6517ac3738cb9", [:mix], [], "hexpm", "000aaeff08919e95e7aea13e4af7b2b9734577b3e6a7c50ee31ee88cab6ec4fb"}, "earmark_parser": {:hex, :earmark_parser, "1.4.12", "b245e875ec0a311a342320da0551da407d9d2b65d98f7a9597ae078615af3449", [:mix], [], "hexpm", "711e2cc4d64abb7d566d43f54b78f7dc129308a63bc103fbd88550d2174b3160"},