diff --git a/doc/source/10min.rst b/doc/source/10min.rst index 359ec76533520..1057cfc4745e6 100644 --- a/doc/source/10min.rst +++ b/doc/source/10min.rst @@ -774,7 +774,7 @@ Writing to an excel file .. ipython:: python - df.to_excel('foo.xlsx', sheet_name='Sheet1') + df.to_excel('foo.xlsx', sheetname='Sheet1') Reading from an excel file diff --git a/doc/source/io.rst b/doc/source/io.rst index 70e7154493ccf..c86d3f214827b 100644 --- a/doc/source/io.rst +++ b/doc/source/io.rst @@ -2012,9 +2012,9 @@ Specifying Sheets .. _io.specifying_sheets: -.. note :: The second argument is ``sheetname``, not to be confused with ``ExcelFile.sheet_names`` +.. note :: The second argument is ``sheetname``, not to be confused with ``ExcelFile.sheetnames`` -.. note :: An ExcelFile's attribute ``sheet_names`` provides access to a list of sheets. +.. note :: An ExcelFile's attribute ``sheetnames`` provides access to a list of sheets. - The arguments ``sheetname`` allows specifying the sheet or sheets to read. - The default value for ``sheetname`` is 0, indicating to read the first sheet @@ -2111,7 +2111,7 @@ written. For example: .. code-block:: python - df.to_excel('path_to_file.xlsx', sheet_name='Sheet1') + df.to_excel('path_to_file.xlsx', sheetname='Sheet1') Files with a ``.xls`` extension will be written using ``xlwt`` and those with a ``.xlsx`` extension will be written using ``xlsxwriter`` (if available) or @@ -2135,8 +2135,8 @@ one can pass an :class:`~pandas.io.excel.ExcelWriter`. .. code-block:: python with ExcelWriter('path_to_file.xlsx') as writer: - df1.to_excel(writer, sheet_name='Sheet1') - df2.to_excel(writer, sheet_name='Sheet2') + df1.to_excel(writer, sheetname='Sheet1') + df2.to_excel(writer, sheetname='Sheet2') .. note:: @@ -2181,7 +2181,7 @@ argument to ``to_excel`` and to ``ExcelWriter``. The built-in engines are: .. code-block:: python # By setting the 'engine' in the DataFrame and Panel 'to_excel()' methods. - df.to_excel('path_to_file.xlsx', sheet_name='Sheet1', engine='xlsxwriter') + df.to_excel('path_to_file.xlsx', sheetname='Sheet1', engine='xlsxwriter') # By setting the 'engine' in the ExcelWriter constructor. writer = ExcelWriter('path_to_file.xlsx', engine='xlsxwriter') @@ -2190,7 +2190,7 @@ argument to ``to_excel`` and to ``ExcelWriter``. The built-in engines are: from pandas import options options.io.excel.xlsx.writer = 'xlsxwriter' - df.to_excel('path_to_file.xlsx', sheet_name='Sheet1') + df.to_excel('path_to_file.xlsx', sheetname='Sheet1') .. _io.excel_writing_buffer: @@ -2214,7 +2214,7 @@ Pandas supports writing Excel files to buffer-like objects such as ``StringIO`` # By setting the 'engine' in the ExcelWriter constructor. writer = ExcelWriter(bio, engine='xlsxwriter') - df.to_excel(writer, sheet_name='Sheet1') + df.to_excel(writer, sheetname='Sheet1') # Save the workbook writer.save() diff --git a/pandas/core/frame.py b/pandas/core/frame.py index 997dfeb728ade..4c8934e224126 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -1269,7 +1269,7 @@ def to_csv(self, path_or_buf=None, sep=",", na_rep='', float_format=None, if path_or_buf is None: return formatter.path_or_buf.getvalue() - def to_excel(self, excel_writer, sheet_name='Sheet1', na_rep='', + def to_excel(self, excel_writer, sheetname='Sheet1', na_rep='', 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', @@ -1281,7 +1281,7 @@ def to_excel(self, excel_writer, sheet_name='Sheet1', na_rep='', ---------- excel_writer : string or ExcelWriter object File path or existing ExcelWriter - sheet_name : string, default 'Sheet1' + sheetname : string, default 'Sheet1' Name of sheet which will contain DataFrame na_rep : string, default '' Missing data representation @@ -1351,7 +1351,7 @@ def to_excel(self, excel_writer, sheet_name='Sheet1', na_rep='', merge_cells=merge_cells, inf_rep=inf_rep, verbose=verbose) formatted_cells = formatter.get_formatted_cells() - excel_writer.write_cells(formatted_cells, sheet_name, + excel_writer.write_cells(formatted_cells, sheetname, startrow=startrow, startcol=startcol) if need_save: excel_writer.save() diff --git a/pandas/io/excel.py b/pandas/io/excel.py index d5258cb32e6e0..40e4cec8ff668 100644 --- a/pandas/io/excel.py +++ b/pandas/io/excel.py @@ -382,7 +382,7 @@ def _parse_cell(cell_contents,cell_typ): sheets = sheetname ret_dict = True elif sheetname is None: - sheets = self.sheet_names + sheets = self.sheetnames ret_dict = True else: sheets = [sheetname] @@ -441,8 +441,8 @@ def _parse_cell(cell_contents,cell_typ): @property - def sheet_names(self): - return self.book.sheet_names() + def sheetnames(self): + return self.book.sheetnames() def close(self): """close io if necessary""" @@ -508,7 +508,7 @@ class ExcelWriter(object): # Defining an ExcelWriter implementation (see abstract methods for more...) # - Mandatory - # - ``write_cells(self, cells, sheet_name=None, startrow=0, startcol=0)`` + # - ``write_cells(self, cells, sheetname=None, startrow=0, startcol=0)`` # --> called to write additional DataFrames to disk # - ``supported_extensions`` (tuple of supported extensions), used to # check that engine supports the given extension. @@ -560,7 +560,7 @@ def engine(self): pass @abc.abstractmethod - def write_cells(self, cells, sheet_name=None, startrow=0, startcol=0): + def write_cells(self, cells, sheetname=None, startrow=0, startcol=0): """ Write given formated cells into Excel an excel sheet @@ -568,7 +568,7 @@ def write_cells(self, cells, sheet_name=None, startrow=0, startcol=0): ---------- cells : generator cell of formated data to save to Excel sheet - sheet_name : string, default None + sheetname : string, default None Name of Excel sheet, if None, then use self.cur_sheet startrow: upper left cell row to dump data frame startcol: upper left cell column to dump data frame @@ -605,13 +605,13 @@ def __init__(self, path, engine=None, else: self.datetime_format = datetime_format - def _get_sheet_name(self, sheet_name): - if sheet_name is None: - sheet_name = self.cur_sheet - if sheet_name is None: # pragma: no cover - raise ValueError('Must pass explicit sheet_name or set ' + def _get_sheetname(self, sheetname): + if sheetname is None: + sheetname = self.cur_sheet + if sheetname is None: # pragma: no cover + raise ValueError('Must pass explicit sheetname or set ' 'cur_sheet property') - return sheet_name + return sheetname @classmethod def check_extension(cls, ext): @@ -665,18 +665,18 @@ def save(self): """ return self.book.save(self.path) - def write_cells(self, cells, sheet_name=None, startrow=0, startcol=0): + def write_cells(self, cells, sheetname=None, startrow=0, startcol=0): # Write the frame cells using openpyxl. from openpyxl.cell import get_column_letter - sheet_name = self._get_sheet_name(sheet_name) + sheetname = self._get_sheetname(sheetname) - if sheet_name in self.sheets: - wks = self.sheets[sheet_name] + if sheetname in self.sheets: + wks = self.sheets[sheetname] else: wks = self.book.create_sheet() - wks.title = sheet_name - self.sheets[sheet_name] = wks + wks.title = sheetname + self.sheets[sheetname] = wks for cell in cells: colletter = get_column_letter(startcol + cell.col + 1) @@ -759,18 +759,18 @@ class _Openpyxl2Writer(_Openpyxl1Writer): engine = 'openpyxl2' openpyxl_majorver = 2 - def write_cells(self, cells, sheet_name=None, startrow=0, startcol=0): + def write_cells(self, cells, sheetname=None, startrow=0, startcol=0): # Write the frame cells using openpyxl. from openpyxl.cell import get_column_letter - sheet_name = self._get_sheet_name(sheet_name) + sheetname = self._get_sheetname(sheetname) - if sheet_name in self.sheets: - wks = self.sheets[sheet_name] + if sheetname in self.sheets: + wks = self.sheets[sheetname] else: wks = self.book.create_sheet() - wks.title = sheet_name - self.sheets[sheet_name] = wks + wks.title = sheetname + self.sheets[sheetname] = wks for cell in cells: colletter = get_column_letter(startcol + cell.col + 1) @@ -1189,16 +1189,16 @@ def save(self): """ return self.book.save(self.path) - def write_cells(self, cells, sheet_name=None, startrow=0, startcol=0): + def write_cells(self, cells, sheetname=None, startrow=0, startcol=0): # Write the frame cells using xlwt. - sheet_name = self._get_sheet_name(sheet_name) + sheetname = self._get_sheetname(sheetname) - if sheet_name in self.sheets: - wks = self.sheets[sheet_name] + if sheetname in self.sheets: + wks = self.sheets[sheetname] else: - wks = self.book.add_sheet(sheet_name) - self.sheets[sheet_name] = wks + wks = self.book.add_sheet(sheetname) + self.sheets[sheetname] = wks style_dict = {} @@ -1312,16 +1312,16 @@ def save(self): """ return self.book.close() - def write_cells(self, cells, sheet_name=None, startrow=0, startcol=0): + def write_cells(self, cells, sheetname=None, startrow=0, startcol=0): # Write the frame cells using xlsxwriter. - sheet_name = self._get_sheet_name(sheet_name) + sheetname = self._get_sheetname(sheetname) - if sheet_name in self.sheets: - wks = self.sheets[sheet_name] + if sheetname in self.sheets: + wks = self.sheets[sheetname] else: - wks = self.book.add_worksheet(sheet_name) - self.sheets[sheet_name] = wks + wks = self.book.add_worksheet(sheetname) + self.sheets[sheetname] = wks style_dict = {} diff --git a/pandas/io/tests/test_excel.py b/pandas/io/tests/test_excel.py index 83db59f9d9029..68c34d0ec1120 100644 --- a/pandas/io/tests/test_excel.py +++ b/pandas/io/tests/test_excel.py @@ -743,9 +743,9 @@ def test_sheets(self): tm.assert_frame_equal(self.frame, recons) recons = reader.parse('test2', index_col=0) tm.assert_frame_equal(self.tsframe, recons) - np.testing.assert_equal(2, len(reader.sheet_names)) - np.testing.assert_equal('test1', reader.sheet_names[0]) - np.testing.assert_equal('test2', reader.sheet_names[1]) + np.testing.assert_equal(2, len(reader.sheetnames)) + np.testing.assert_equal('test1', reader.sheetnames[0]) + np.testing.assert_equal('test2', reader.sheetnames[1]) def test_colaliases(self): _skip_if_no_xlrd() @@ -842,7 +842,7 @@ def test_excel_roundtrip_indexname(self): df.to_excel(path, merge_cells=self.merge_cells) xf = ExcelFile(path) - result = xf.parse(xf.sheet_names[0], + result = xf.parse(xf.sheetnames[0], index_col=0, has_index_names=self.merge_cells) @@ -1006,7 +1006,7 @@ def test_to_excel_output_encoding(self): index=[u('A\u0192'), 'B'], columns=[u('X\u0193'), 'Y', 'Z']) with ensure_clean(filename) as filename: - df.to_excel(filename, sheet_name='TestSheet', encoding='utf8') + df.to_excel(filename, sheetname='TestSheet', encoding='utf8') result = read_excel(filename, 'TestSheet', encoding='utf8') tm.assert_frame_equal(result, df) @@ -1065,7 +1065,7 @@ def test_to_excel_unicode_filename(self): # wbk = xlrd.open_workbook(filename, # formatting_info=True) - # self.assertEqual(["test1"], wbk.sheet_names()) + # self.assertEqual(["test1"], wbk.sheetnames()) # ws = wbk.sheet_by_name('test1') # self.assertEqual([(0, 1, 5, 7), (0, 1, 3, 5), (0, 1, 1, 3)], # ws.merged_cells) @@ -1111,7 +1111,7 @@ def test_to_excel_unicode_filename(self): # filename = '__tmp_to_excel_header_styling_xlsx__.xlsx' # pdf.to_excel(filename, 'test1') # wbk = openpyxl.load_workbook(filename) - # self.assertEqual(["test1"], wbk.get_sheet_names()) + # self.assertEqual(["test1"], wbk.get_sheetnames()) # ws = wbk.get_sheet_by_name('test1') # xlsaddrs = ["%s2" % chr(i) for i in range(ord('A'), ord('H'))] # xlsaddrs += ["A%s" % i for i in range(1, 6)] @@ -1149,7 +1149,7 @@ def roundtrip(df, header=True, parser_hdr=0, index=True): with ensure_clean(self.ext) as path: df.to_excel(path, header=header, merge_cells=self.merge_cells, index=index) xf = pd.ExcelFile(path) - res = xf.parse(xf.sheet_names[0], header=parser_hdr) + res = xf.parse(xf.sheetnames[0], header=parser_hdr) return res nrows = 5 @@ -1203,7 +1203,7 @@ def roundtrip2(df, header=True, parser_hdr=0, index=True): with ensure_clean(self.ext) as path: df.to_excel(path, header=header, merge_cells=self.merge_cells, index=index) xf = pd.ExcelFile(path) - res = xf.parse(xf.sheet_names[0], header=parser_hdr) + res = xf.parse(xf.sheetnames[0], header=parser_hdr) return res nrows = 5; ncols = 3 @@ -1430,7 +1430,7 @@ def test_write_cells_merge_styled(self): from pandas.core.format import ExcelCell from openpyxl import styles - sheet_name='merge_styled' + sheetname='merge_styled' sty_b1 = {'font': {'color': '00FF0000'}} sty_a2 = {'font': {'color': '0000FF00'}} @@ -1450,10 +1450,10 @@ def test_write_cells_merge_styled(self): with ensure_clean('.xlsx') as path: writer = _Openpyxl2Writer(path) - writer.write_cells(initial_cells, sheet_name=sheet_name) - writer.write_cells(merge_cells, sheet_name=sheet_name) + writer.write_cells(initial_cells, sheetname=sheetname) + writer.write_cells(merge_cells, sheetname=sheetname) - wks = writer.sheets[sheet_name] + wks = writer.sheets[sheetname] xcell_b1 = wks.cell('B1') xcell_a2 = wks.cell('A2') self.assertEqual(xcell_b1.style, openpyxl_sty_merged)