mirror of
https://github.com/kennethreitz/tablib.git
synced 2026-06-05 23:10:17 +00:00
Merge pull request #309 from cristiano2lopes/delegate-type-coercion-to-openpyxl
Delegate type coercion to openpyxl
This commit is contained in:
+11
-13
@@ -17,6 +17,7 @@ import tablib
|
||||
Workbook = openpyxl.workbook.Workbook
|
||||
ExcelWriter = openpyxl.writer.excel.ExcelWriter
|
||||
get_column_letter = openpyxl.cell.get_column_letter
|
||||
DataTypeException = openpyxl.shared.exc.DataTypeException
|
||||
|
||||
from tablib.compat import unicode
|
||||
|
||||
@@ -120,33 +121,30 @@ 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)
|
||||
|
||||
|
||||
try:
|
||||
ws.cell('%s%s' % (col_idx, row_number)).value = col
|
||||
except (ValueError, TypeError, DataTypeException):
|
||||
ws.cell('%s%s' % (col_idx, row_number)).value = unicode(col)
|
||||
|
||||
Reference in New Issue
Block a user