def write(self, writer, sheet_name='Sheet1', startrow=0, startcol=0, freeze_panes=None, engine=None): """ writer : string or ExcelWriter object File path or existing ExcelWriter sheet_name : string, default 'Sheet1' Name of sheet which will contain DataFrame startrow : upper left cell row to dump data frame startcol : upper left cell column to dump data frame freeze_panes : tuple of integer (length 2), default None Specifies the one-based bottommost row and rightmost column that is to be frozen engine : string, default None write engine to use if writer is a path - you can also set this via the options ``io.excel.xlsx.writer``, ``io.excel.xls.writer``, and ``io.excel.xlsm.writer``. """ from pandas.io.excel import ExcelWriter from pandas.io.common import _stringify_path if isinstance(writer, ExcelWriter): need_save = False else: writer = ExcelWriter(_stringify_path(writer), engine=engine) need_save = True formatted_cells = self.get_formatted_cells() writer.write_cells(formatted_cells, sheet_name, startrow=startrow, startcol=startcol, freeze_panes=freeze_panes) if need_save: writer.save()
def to_excel(self, excel_writer, sheet_name='Sheet1', na_rep='', cell_styles=None, # new argument float_format=None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None, inf_rep='inf', verbose=True): """ Extended function that adds support for "cell_styles" argument """ from pandas.io.excel import ExcelWriter need_save = False if encoding is None: encoding = 'ascii' if isinstance(excel_writer, compat.string_types): excel_writer = ExcelWriter(excel_writer, engine=engine) need_save = True # use the extended formatter class and pass the cell_styles argument formatter = ExcelFormatterStyler(self, na_rep=na_rep, cols=columns, header=header, cell_styles=cell_styles, # new argument float_format=float_format, index=index, index_label=index_label, merge_cells=merge_cells, inf_rep=inf_rep) formatted_cells = formatter.get_formatted_cells() excel_writer.write_cells(formatted_cells, sheet_name, startrow=startrow, startcol=startcol) if need_save: excel_writer.save()
def write( self, writer, sheet_name="Sheet1", startrow=0, startcol=0, freeze_panes=None, engine=None, ): """ writer : string or ExcelWriter object File path or existing ExcelWriter sheet_name : string, default 'Sheet1' Name of sheet which will contain DataFrame startrow : upper left cell row to dump data frame startcol : upper left cell column to dump data frame freeze_panes : tuple of integer (length 2), default None Specifies the one-based bottommost row and rightmost column that is to be frozen engine : string, default None write engine to use if writer is a path - you can also set this via the options ``io.excel.xlsx.writer``, ``io.excel.xls.writer``, and ``io.excel.xlsm.writer``. """ from pandas.io.excel import ExcelWriter num_rows, num_cols = self.df.shape if num_rows > self.max_rows or num_cols > self.max_cols: raise ValueError( f"This sheet is too large! Your sheet size is: {num_rows}, {num_cols} " f"Max sheet size is: {self.max_rows}, {self.max_cols}" ) if isinstance(writer, ExcelWriter): need_save = False else: # pandas\io\formats\excel.py:808: error: Cannot instantiate # abstract class 'ExcelWriter' with abstract attributes 'engine', # 'save', 'supported_extensions' and 'write_cells' [abstract] writer = ExcelWriter( # type: ignore[abstract] stringify_path(writer), engine=engine ) need_save = True formatted_cells = self.get_formatted_cells() writer.write_cells( formatted_cells, sheet_name, startrow=startrow, startcol=startcol, freeze_panes=freeze_panes, ) if need_save: writer.save()
def write( self, writer, sheet_name="Sheet1", startrow=0, startcol=0, freeze_panes=None, engine=None, ): """ writer : string or ExcelWriter object File path or existing ExcelWriter sheet_name : string, default 'Sheet1' Name of sheet which will contain DataFrame startrow : upper left cell row to dump data frame startcol : upper left cell column to dump data frame freeze_panes : tuple of integer (length 2), default None Specifies the one-based bottommost row and rightmost column that is to be frozen engine : string, default None write engine to use if writer is a path - you can also set this via the options ``io.excel.xlsx.writer``, ``io.excel.xls.writer``, and ``io.excel.xlsm.writer``. """ from pandas.io.excel import ExcelWriter from pandas.io.common import _stringify_path num_rows, num_cols = self.df.shape if num_rows > self.max_rows or num_cols > self.max_cols: raise ValueError( "This sheet is too large! Your sheet size is: " + "{}, {} ".format(num_rows, num_cols) + "Max sheet size is: {}, {}".format(self.max_rows, self.max_cols) ) if isinstance(writer, ExcelWriter): need_save = False else: writer = ExcelWriter(_stringify_path(writer), engine=engine) need_save = True formatted_cells = self.get_formatted_cells() writer.write_cells( formatted_cells, sheet_name, startrow=startrow, startcol=startcol, freeze_panes=freeze_panes, ) if need_save: writer.save()
def write( self, writer, sheet_name="Sheet1", startrow=0, startcol=0, freeze_panes=None, engine=None, storage_options: StorageOptions = None, ): """ writer : path-like, file-like, or ExcelWriter object File path or existing ExcelWriter sheet_name : string, default 'Sheet1' Name of sheet which will contain DataFrame startrow : upper left cell row to dump area_data frame startcol : upper left cell column to dump area_data frame freeze_panes : tuple of integer (length 2), default None Specifies the one-based bottommost row and rightmost column that is to be frozen engine : string, default None write engine to use if writer is a path - you can also set this via the options ``io.excel.xlsx.writer``, ``io.excel.xls.writer``, and ``io.excel.xlsm.writer``. .. deprecated:: 1.2.0 As the `xlwt <https://pypi.org/project/xlwt/>`__ package is no longer maintained, the ``xlwt`` engine will be removed in a future version of pandas. {storage_options} .. versionadded:: 1.2.0 """ from pandas.io.excel import ExcelWriter num_rows, num_cols = self.df.shape if num_rows > self.max_rows or num_cols > self.max_cols: raise ValueError( f"This sheet is too large! Your sheet size is: {num_rows}, {num_cols} " f"Max sheet size is: {self.max_rows}, {self.max_cols}") formatted_cells = self.get_formatted_cells() if isinstance(writer, ExcelWriter): need_save = False else: # pandas\io\formats\excel.py:808: error: Cannot instantiate # abstract class 'ExcelWriter' with abstract attributes 'engine', # 'save', 'supported_extensions' and 'write_cells' [abstract] writer = ExcelWriter( # type: ignore[abstract] writer, engine=engine, storage_options=storage_options) need_save = True try: writer.write_cells( formatted_cells, sheet_name, startrow=startrow, startcol=startcol, freeze_panes=freeze_panes, ) finally: # make sure to close opened file handles if need_save: writer.close()
def write( self, writer, sheet_name="Sheet1", startrow=0, startcol=0, freeze_panes=None, engine=None, storage_options: StorageOptions = None, ): """ writer : path-like, file-like, or ExcelWriter object File path or existing ExcelWriter sheet_name : string, default 'Sheet1' Name of sheet which will contain DataFrame startrow : upper left cell row to dump data frame startcol : upper left cell column to dump data frame freeze_panes : tuple of integer (length 2), default None Specifies the one-based bottommost row and rightmost column that is to be frozen engine : string, default None write engine to use if writer is a path - you can also set this via the options ``io.excel.xlsx.writer``, ``io.excel.xls.writer``, and ``io.excel.xlsm.writer``. storage_options : dict, optional Extra options that make sense for a particular storage connection, e.g. host, port, username, password, etc., if using a URL that will be parsed by ``fsspec``, e.g., starting "s3://", "gcs://". .. versionadded:: 1.2.0 """ from pandas.io.excel import ExcelWriter num_rows, num_cols = self.df.shape if num_rows > self.max_rows or num_cols > self.max_cols: raise ValueError( f"This sheet is too large! Your sheet size is: {num_rows}, {num_cols} " f"Max sheet size is: {self.max_rows}, {self.max_cols}") formatted_cells = self.get_formatted_cells() if isinstance(writer, ExcelWriter): need_save = False else: # pandas\io\formats\excel.py:808: error: Cannot instantiate # abstract class 'ExcelWriter' with abstract attributes 'engine', # 'save', 'supported_extensions' and 'write_cells' [abstract] writer = ExcelWriter( # type: ignore[abstract] writer, engine=engine, storage_options=storage_options) need_save = True try: writer.write_cells( formatted_cells, sheet_name, startrow=startrow, startcol=startcol, freeze_panes=freeze_panes, ) finally: # make sure to close opened file handles if need_save: writer.close()