From 77469ef6556f356e93ed37e5e10b8ccccc2fbb46 Mon Sep 17 00:00:00 2001 From: Cristiano Lopes Date: Mon, 11 Sep 2017 12:47:51 +0100 Subject: [PATCH] Delegate type coercion to openpyxl --- tablib/formats/_xlsx.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/tablib/formats/_xlsx.py b/tablib/formats/_xlsx.py index 411e0fc..0fb42db 100644 --- a/tablib/formats/_xlsx.py +++ b/tablib/formats/_xlsx.py @@ -120,33 +120,29 @@ def dset_sheet(dataset, ws, freeze_panes=True): if (row_number == 1) and dataset.headers: # ws.cell('%s%s'%(col_idx, row_number)).value = unicode( # '%s' % col, errors='ignore') - ws.cell('%s%s'%(col_idx, row_number)).value = unicode(col) style = ws.get_style('%s%s' % (col_idx, row_number)) style.font.bold = True if freeze_panes: # As already done in #53, but after Merge lost: # Export Freeze only after first Line ws.freeze_panes = 'A2' - + # bold separators elif len(row) < dataset.width: - ws.cell('%s%s'%(col_idx, row_number)).value = unicode( - '%s' % col, errors='ignore') style = ws.get_style('%s%s' % (col_idx, row_number)) style.font.bold = True # wrap the rest else: try: - if '\n' in col: - ws.cell('%s%s'%(col_idx, row_number)).value = unicode( - '%s' % col, errors='ignore') + str_col_value = unicode(col) + except TypeError: + str_col_value = '' + + if '\n' in str_col_value: style = ws.get_style('%s%s' % (col_idx, row_number)) style.alignment.wrap_text - else: - ws.cell('%s%s'%(col_idx, row_number)).value = unicode( - '%s' % col, errors='ignore') - except TypeError: - ws.cell('%s%s'%(col_idx, row_number)).value = unicode(col) + + ws.cell('%s%s' % (col_idx, row_number)).value = col