diff --git a/ods2md.py b/ods2md.py index 18dd95f..54dd60c 100755 --- a/ods2md.py +++ b/ods2md.py @@ -19,9 +19,7 @@ from __future__ import print_function -import ezodf -import sys -import unicodedata +import ezodf, sys, re, unicodedata # Ref: http://stackoverflow.com/a/31666966/224671 DISPLAY_WIDTH = { @@ -33,14 +31,16 @@ DISPLAY_WIDTH = { 'W': 2, } +LINEFEED_REGEX=re.compile('(\r\n|\r|\n)', flags=re.MULTILINE) + def display_text(cell): v = cell.value if isinstance(v, float): - return '{:g}'.format(v) + return LINEFEED_REGEX.sub('
', '{:g}'.format(v)) elif v is None: return '' else: - return str(v) + return LINEFEED_REGEX.sub('
', str(v)) def display_len(s): return sum(DISPLAY_WIDTH[unicodedata.east_asian_width(c)] for c in s)