diff --git a/poi/__init__.py b/poi/__init__.py index 6cc44fe..d95b0af 100644 --- a/poi/__init__.py +++ b/poi/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.1.4" +__version__ = "0.1.5" from .sheet import Sheet # noqa diff --git a/poi/nodes.py b/poi/nodes.py index 8783f42..5a77f32 100644 --- a/poi/nodes.py +++ b/poi/nodes.py @@ -274,7 +274,9 @@ def __init__( cell_width=None, cell_height=None, cell_style=None, + datetime_format=None, date_format=None, + time_format=None, *args, **kwargs, ): @@ -285,6 +287,8 @@ def __init__( self.cell_style = cell_style or {} self.date_format = date_format + self.datetime_format = datetime_format + self.time_format = time_format self.columns = [] for col in columns: assert isinstance(col, (tuple, dict)) diff --git a/poi/visitors/writer.py b/poi/visitors/writer.py index 3a70485..3f36bbe 100644 --- a/poi/visitors/writer.py +++ b/poi/visitors/writer.py @@ -62,11 +62,13 @@ def get_obj_attr(obj, field): val = column.render(item) else: val = column.render(item, column) + if isinstance(val, datetime.datetime): + fmt["num_format"] = self.datetime_format or "yyyy-mm-dd hh:mm:ss" + if isinstance(val, datetime.date): + fmt["num_format"] = self.date_format or "yyyy-mm-dd" + if isinstance(val, datetime.time): + fmt["num_format"] = self.time_format or "hh:mm:ss" - if self.date_format and isinstance( - val, (datetime.date, datetime.datetime) - ): - fmt["num_format"] = self.date_format writer.write(row + i + 1, col + j, val, {**self.cell_format, **fmt}) @visitor.register diff --git a/pyproject.toml b/pyproject.toml index 462dbd9..373db29 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "poi" -version = "0.1.4" +version = "0.1.5" description = "" authors = ["Ryan Wang "] diff --git a/tests/test_poi.py b/tests/test_poi.py index 5b951d6..05ed410 100644 --- a/tests/test_poi.py +++ b/tests/test_poi.py @@ -6,7 +6,7 @@ def test_version(): - assert __version__ == "0.1.4" + assert __version__ == "0.1.5" def assert_match_snapshot(sheet: Sheet, snapshot):