def set_col_widths(self): from openpyxl.utils.cell import get_column_letter from openpyxl.cell import Cell TYPE_STRING = Cell.TYPE_STRING for idx, width in sorted(self._col_widths.iteritems()): letter = get_column_letter(idx + 1) self.sheet.column_dimensions[letter].width = 1 + min(width, 50) for row in self._rows: values = [] for val in row: if val: value = val.value cell = Cell(self.sheet, column='A', row=1) if isinstance(value, basestring): cell.set_explicit_value(value, data_type=TYPE_STRING) else: cell.value = value cell.style = val.style else: cell = val values.append(cell) self.sheet.append(values) self._rows[:] = ()
def test_set_bad_type(): ws = build_dummy_worksheet() cell = Cell(ws, 'A', 1) cell.set_explicit_value(1, 'q')
def test_set_bad_type(): ws = build_dummy_worksheet() cell = Cell(ws, 'A', 1) with pytest.raises(ValueError): cell.set_explicit_value(1, 'q')
def mk_cell(value): cell = Cell(ws) cell.number_format = '@' # Ensure text cell format cell.set_explicit_value(value) return cell