jazzband / jazzband/tablib

IllegalCharacterError raised when exporting xlsx

Open
#370 7 comments 2 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
4.8k
Forks
617
PR merge metrics
No merged PRs in 30d

Description

Using tablib version 0.13.0
The issue is with Control Characters and Surrogates

Steps to reproduce:
```py
from tablib import Dataset
data=Dataset((u'\x1f',),)
data.export('xlsx')
```

Stack Trace
```pytb
IllegalCharacterErrorTraceback (most recent call last)
in ()
1 from tablib import Dataset
2 data=Dataset((u'\x1f',),)
----> 3 data.export('xlsx')

/srv/jupyter/local/lib/python2.7/site-packages/tablib/core.pyc in export(self, format, **kwargs)
466 raise UnsupportedFormat('Format {0} cannot be exported.'.format(format))
467
--> 468 return export_set(self, **kwargs)
469
470 # -------

/srv/jupyter/local/lib/python2.7/site-packages/tablib/formats/_xlsx.pyc in export_set(dataset, freeze_panes)
41 ws.title = dataset.title if dataset.title else 'Tablib Dataset'
42
---> 43 dset_sheet(dataset, ws, freeze_panes=freeze_panes)
44
45 stream = BytesIO()

/srv/jupyter/local/lib/python2.7/site-packages/tablib/formats/_xlsx.pyc in dset_sheet(dataset, ws, freeze_panes)
145 cell.value = unicode('%s' % col, errors='ignore')
146 except TypeError:
--> 147 cell.value = unicode(col)

/srv/jupyter/local/lib/python2.7/site-packages/openpyxl/cell/cell.pyc in value(self, value)
292 def value(self, value):
293 """Set the value and infer type and display options."""
--> 294 self._bind_value(value)
295
296 @property

/srv/jupyter/local/lib/python2.7/site-packages/openpyxl/cell/cell.pyc in _bind_value(self, value)
195
196 elif isinstance(value, STRING_TYPES):
--> 197 value = self.check_string(value)
198 self.data_type = self.TYPE_STRING
199 if len(value) > 1 and value.startswith("="):

/srv/jupyter/local/lib/python2.7/site-packages/openpyxl/cell/cell.pyc in check_string(self, value)
158 value = value[:32767]
159 if next(ILLEGAL_CHARACTERS_RE.finditer(value), None):
--> 160 raise IllegalCharacterError
161 return value
162

IllegalCharacterError:
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.