CLN: Move to_excel to generic.py
No need to define the same method twice for `DataFrame` and `Series` if we can do it in one place.
Hello @gfyoung! Thanks for submitting the PR.

 - There are no PEP8 issues in the file [`pandas/core/frame.py`](https://github.com/gfyoung/pandas/blob/648b38991665489d58e683bb323877a60e766a6f/pandas/core/frame.py) !

 - There are no PEP8 issues in the file [`pandas/core/generic.py`](https://github.com/gfyoung/pandas/blob/648b38991665489d58e683bb323877a60e766a6f/pandas/core/generic.py) !

 - There are no PEP8 issues in the file [`pandas/core/series.py`](https://github.com/gfyoung/pandas/blob/648b38991665489d58e683bb323877a60e766a6f/pandas/core/series.py) !

 # [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/23656?src=pr&el=h1) Report
> Merging [#23656](https://codecov.io/gh/pandas-dev/pandas/pull/23656?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/a08bf3de02bb1e53fb95df24ae060b63c2a44c96?src=pr&el=desc) will **decrease** coverage by `<.01%`.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/23656/graphs/tree.svg?width=650&token=eZ4WkYLtcO&height=150&src=pr)](https://codecov.io/gh/pandas-dev/pandas/pull/23656?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master   #23656      +/-   ##
==========================================
- Coverage   92.24%   92.24%   -0.01%     
==========================================
  Files         161      161              
  Lines       51317    51314       -3     
==========================================
- Hits        47338    47335       -3     
  Misses       3979     3979
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `90.63% <100%> (-0.01%)` | :arrow_down: |
| #single | `42.31% <33.33%> (-0.01%)` | :arrow_down: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/23656?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/frame.py](https://codecov.io/gh/pandas-dev/pandas/pull/23656/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZnJhbWUucHk=) | `97.02% <ø> (-0.01%)` | :arrow_down: |
| [pandas/core/series.py](https://codecov.io/gh/pandas-dev/pandas/pull/23656/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvc2VyaWVzLnB5) | `93.68% <ø> (-0.03%)` | :arrow_down: |
| [pandas/core/generic.py](https://codecov.io/gh/pandas-dev/pandas/pull/23656/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZ2VuZXJpYy5weQ==) | `96.82% <100%> (ø)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/23656?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/23656?src=pr&el=footer). Last update [a08bf3d...648b389](https://codecov.io/gh/pandas-dev/pandas/pull/23656?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
 thanks!