Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DOC: Expose ExcelWriter as part of the Generated API #22359

Merged
merged 13 commits into from
Sep 18, 2018
6 changes: 6 additions & 0 deletions doc/source/api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,12 @@ Excel
read_excel
ExcelFile.parse

.. autosummary::
:toctree: generated/
:template: autosummary/class_without_autosummary.rst

ExcelWriter

JSON
~~~~

Expand Down
48 changes: 48 additions & 0 deletions pandas/io/excel.py
Original file line number Diff line number Diff line change
Expand Up @@ -824,8 +824,56 @@ class ExcelWriter(object):

Notes
-----
None of methods and properties are considered public.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"None of methods" -> "None of the methods"


For compatibility with CSV writers, ExcelWriter serializes lists
and dicts to strings before writing.

Examples
--------
Using ExcelWriter, some settings can be added.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this line


Default usage.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of a "." use ":"


>>> with ExcelWriter('path_to_file.xlsx') as writer:
... df.to_excel(writer)

If you want to set engine that can manipulate Excel,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this second example is better served in to_excel as it generic functionality. Would be OK if you removed here and added that to the to_excel docs in a separate change

pass keyword argument named engine. Actually
engine is automatically chosen by file extension.

>>> with ExcelWriter('path_to_file.xlsx', engine='openpyxl') as writer:
... df.to_excel(writer)

In order to write separate DataFrames to separate sheets
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just say "To write to separate sheets in a single file:"

in a single Excel file, one can pass an ExcelWriter.

>>> 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 date format or datetime format

>>> with ExcelWriter('path_to_file.xlsx',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am actually surprised that we allow date / date time formatting with ExcelWriter but don't have the same usage in to_excel - if you are up to it aligning that functionality would be ideal (separate change)

date_format='YYYY-MM-DD',
datetime_format='YYYY-MM-DD HH:MM:SS') as writer:
... df.to_excel(writer)

It also supports append mode.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"You can also append to an existing Excel file:"


>>> with ExcelWriter('path_to_file.xlsx', mode='a') as writer:
... df.to_excel(writer)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add here a sheet name? (I think you typically want to add a new sheet to an existing file?)

Copy link
Contributor Author

@newinh newinh Aug 21, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems more natural to do that:)


.. versionadded:: 0.24.0
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this one can be removed



Attributes
----------
None

Methods
-------
None
"""
# Defining an ExcelWriter implementation (see abstract methods for more...)

Expand Down