def test_to_excel_styleconverter(self): _skip_if_no_openpyxl() if not openpyxl_compat.is_compat(): raise nose.SkipTest('incompatiable openpyxl version') import openpyxl hstyle = {"font": {"bold": True}, "borders": {"top": "thin", "right": "thin", "bottom": "thin", "left": "thin"}, "alignment": {"horizontal": "center", "vertical": "top"}} xlsx_style = _OpenpyxlWriter._convert_to_style(hstyle) self.assertTrue(xlsx_style.font.bold) self.assertEqual(openpyxl.style.Border.BORDER_THIN, xlsx_style.borders.top.border_style) self.assertEqual(openpyxl.style.Border.BORDER_THIN, xlsx_style.borders.right.border_style) self.assertEqual(openpyxl.style.Border.BORDER_THIN, xlsx_style.borders.bottom.border_style) self.assertEqual(openpyxl.style.Border.BORDER_THIN, xlsx_style.borders.left.border_style) self.assertEqual(openpyxl.style.Alignment.HORIZONTAL_CENTER, xlsx_style.alignment.horizontal) self.assertEqual(openpyxl.style.Alignment.VERTICAL_TOP, xlsx_style.alignment.vertical)
def wrapped(self, *args, **kwargs): _skip_if_no_openpyxl() if openpyxl_compat.is_compat(): orig_method(self, *args, **kwargs) else: msg = 'Installed openpyxl is not supported at this time\. Use.+' with tm.assertRaisesRegexp(ValueError, msg): orig_method(self, *args, **kwargs)
def _skip_if_no_openpyxl(): try: import openpyxl # NOQA except ImportError: raise nose.SkipTest('openpyxl not installed, skipping') if not openpyxl_compat.is_compat(): raise nose.SkipTest('need %s <= openpyxl < %s, skipping' % (openpyxl_compat.start_ver, openpyxl_compat.stop_ver))
def _skip_if_no_openpyxl(): try: import openpyxl # NOQA except ImportError: raise nose.SkipTest('openpyxl not installed, skipping') if not openpyxl_compat.is_compat(): raise nose.SkipTest( 'need %s <= openpyxl < %s, skipping' % (openpyxl_compat.start_ver, openpyxl_compat.stop_ver))
def __init__(self, path, engine=None, **engine_kwargs): if not openpyxl_compat.is_compat(major_ver=self.openpyxl_majorver): raise ValueError('Installed openpyxl is not supported at this ' 'time. Use {0}.x.y.' .format(self.openpyxl_majorver)) # Use the openpyxl module as the Excel writer. from openpyxl.workbook import Workbook super(_Openpyxl1Writer, self).__init__(path, **engine_kwargs) # Create workbook object with default optimized_write=True. self.book = Workbook() # Openpyxl 1.6.1 adds a dummy sheet. We remove it. if self.book.worksheets: self.book.remove_sheet(self.book.worksheets[0])
def __init__(self, path, engine=None, **engine_kwargs): if not openpyxl_compat.is_compat(major_ver=self.openpyxl_majorver): raise ValueError('Installed openpyxl is not supported at this ' 'time. Use {0}.x.y.'.format( self.openpyxl_majorver)) # Use the openpyxl module as the Excel writer. from openpyxl.workbook import Workbook super(_Openpyxl1Writer, self).__init__(path, **engine_kwargs) # Create workbook object with default optimized_write=True. self.book = Workbook() # Openpyxl 1.6.1 adds a dummy sheet. We remove it. if self.book.worksheets: self.book.remove_sheet(self.book.worksheets[0])
def test_ExcelWriter_dispatch(self): with tm.assertRaisesRegexp(ValueError, 'No engine'): ExcelWriter('nothing') try: import xlsxwriter writer_klass = _XlsxWriter except ImportError: _skip_if_no_openpyxl() if not openpyxl_compat.is_compat(): raise nose.SkipTest('incompatible openpyxl version') writer_klass = _OpenpyxlWriter with ensure_clean('.xlsx') as path: writer = ExcelWriter(path) tm.assert_isinstance(writer, writer_klass) _skip_if_no_xlwt() with ensure_clean('.xls') as path: writer = ExcelWriter(path) tm.assert_isinstance(writer, _XlwtWriter)
def test_to_excel_styleconverter(self): _skip_if_no_openpyxl() if not openpyxl_compat.is_compat(): raise nose.SkipTest('incompatiable openpyxl version') import openpyxl hstyle = { "font": { "bold": True }, "borders": { "top": "thin", "right": "thin", "bottom": "thin", "left": "thin" }, "alignment": { "horizontal": "center", "vertical": "top" } } xlsx_style = _OpenpyxlWriter._convert_to_style(hstyle) self.assertTrue(xlsx_style.font.bold) self.assertEqual(openpyxl.style.Border.BORDER_THIN, xlsx_style.borders.top.border_style) self.assertEqual(openpyxl.style.Border.BORDER_THIN, xlsx_style.borders.right.border_style) self.assertEqual(openpyxl.style.Border.BORDER_THIN, xlsx_style.borders.bottom.border_style) self.assertEqual(openpyxl.style.Border.BORDER_THIN, xlsx_style.borders.left.border_style) self.assertEqual(openpyxl.style.Alignment.HORIZONTAL_CENTER, xlsx_style.alignment.horizontal) self.assertEqual(openpyxl.style.Alignment.VERTICAL_TOP, xlsx_style.alignment.vertical)
""" from openpyxl.style import Style xls_style = Style() for key, value in style_dict.items(): for nk, nv in value.items(): if key == "borders": (xls_style.borders.__getattribute__(nk).__setattr__( 'border_style', nv)) else: xls_style.__getattribute__(key).__setattr__(nk, nv) return xls_style if openpyxl_compat.is_compat(): register_writer(_OpenpyxlWriter) else: warn('Installed openpyxl is not supported at this time. Use >={} and <{}.'. format(openpyxl_compat.start_ver, openpyxl_compat.stop_ver)) class _XlwtWriter(ExcelWriter): engine = 'xlwt' supported_extensions = ('.xls', ) def __init__(self, path, engine=None, encoding=None, **engine_kwargs): # Use the xlwt module as the Excel writer. import xlwt super(_XlwtWriter, self).__init__(path, **engine_kwargs)
""" from openpyxl.style import Style xls_style = Style() for key, value in style_dict.items(): for nk, nv in value.items(): if key == "borders": (xls_style.borders.__getattribute__(nk) .__setattr__('border_style', nv)) else: xls_style.__getattribute__(key).__setattr__(nk, nv) return xls_style if openpyxl_compat.is_compat(): register_writer(_OpenpyxlWriter) else: warn('Installed openpyxl is not supported at this time. Use >={0} and <{1}.' .format(openpyxl_compat.start_ver, openpyxl_compat.stop_ver)) class _XlwtWriter(ExcelWriter): engine = 'xlwt' supported_extensions = ('.xls',) def __init__(self, path, engine=None, encoding=None, **engine_kwargs): # Use the xlwt module as the Excel writer. import xlwt super(_XlwtWriter, self).__init__(path, **engine_kwargs)