diff --git a/doc/source/api.rst b/doc/source/api.rst index 551b3eff10fa0..d2bc11adc4d11 100644 --- a/doc/source/api.rst +++ b/doc/source/api.rst @@ -61,6 +61,12 @@ Excel read_excel ExcelFile.parse +.. autosummary:: + :toctree: generated/ + :template: autosummary/class_without_autosummary.rst + + ExcelWriter + JSON ~~~~ diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 9bdf34113ccf0..2034fd4996566 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -1924,11 +1924,17 @@ def _repr_latex_(self): If you wish to write to more than one sheet in the workbook, it is necessary to specify an ExcelWriter object: - >>> writer = pd.ExcelWriter('output2.xlsx', engine='xlsxwriter') - >>> df1.to_excel(writer, sheet_name='Sheet1') >>> df2 = df1.copy() - >>> df2.to_excel(writer, sheet_name='Sheet2') - >>> writer.save() + >>> with pd.ExcelWriter('output.xlsx') as writer: + ... df1.to_excel(writer, sheet_name='Sheet_name_1') + ... df2.to_excel(writer, sheet_name='Sheet_name_2') + + To set the library that is used to write the Excel file, + you can pass the `engine` keyword (the default engine is + automatically chosen depending on the file extension): + + >>> df1.to_excel('output1.xlsx', engine='xlsxwriter') + """ def to_json(self, path_or_buf=None, orient=None, date_format=None, diff --git a/pandas/io/excel.py b/pandas/io/excel.py index e2db6643c5ef0..00b4c704c681b 100644 --- a/pandas/io/excel.py +++ b/pandas/io/excel.py @@ -824,8 +824,43 @@ class ExcelWriter(object): Notes ----- + None of the methods and properties are considered public. + For compatibility with CSV writers, ExcelWriter serializes lists and dicts to strings before writing. + + Examples + -------- + Default usage: + + >>> with ExcelWriter('path_to_file.xlsx') as writer: + ... df.to_excel(writer) + + To write to separate sheets in a single file: + + >>> with ExcelWriter('path_to_file.xlsx') as writer: + ... df1.to_excel(writer, sheet_name='Sheet1') + ... df2.to_excel(writer, sheet_name='Sheet2') + + You can set the date format or datetime format: + + >>> with ExcelWriter('path_to_file.xlsx', + date_format='YYYY-MM-DD', + datetime_format='YYYY-MM-DD HH:MM:SS') as writer: + ... df.to_excel(writer) + + You can also append to an existing Excel file: + + >>> with ExcelWriter('path_to_file.xlsx', mode='a') as writer: + ... df.to_excel(writer, sheet_name='Sheet3') + + Attributes + ---------- + None + + Methods + ------- + None """ # Defining an ExcelWriter implementation (see abstract methods for more...)