From 831ae202d5101de832ddb26ba2db07055aff2811 Mon Sep 17 00:00:00 2001 From: Chris Laidler Date: Fri, 14 Apr 2017 13:20:06 +0200 Subject: [PATCH] Added cell.value_as() Added a methoud to read a spreadsheet cell as a specific type. --- ezodf/cells.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/ezodf/cells.py b/ezodf/cells.py index a8766d4..cca9926 100644 --- a/ezodf/cells.py +++ b/ezodf/cells.py @@ -77,7 +77,26 @@ def convert(value, value_type): else: result = convert(self.xmlnode.get(TYPE_VALUE_MAP[t]), t) return result + + def value_as(self, value_type=None): + def convert(value, value_type): + if value is None: + pass + elif value_type in NUMERIC_TYPES: + value = float(value) + elif value_type == 'boolean': + value = True if value == 'true' else False + return value + t = value_type + if t is None: + result = None + elif t == 'string': + result = self.plaintext() + else: + result = convert(self.xmlnode.get(TYPE_VALUE_MAP[t]), t) + return result + def set_value(self, value, value_type=None, currency=None): def is_valid_value(value):