REGR: appending to existing excel file created corrupt files
- [x] closes #39576
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [x] whatsnew entry

Tentatively ready: I added a working test but I don't have MS Excel to make sure it is happy now. Waiting for someone to test it https://github.com/pandas-dev/pandas/issues/39576#issuecomment-774102850
cc @simonjayhawkins ok to merge on green thanks @twoertwein  @meeseeksdev backport 1.2.x Owee, I'm MrMeeseeks, Look at me.

There seem to be a conflict, please backport manually. Here are approximate instructions:

1. Checkout backport branch and update it.

```
$ git checkout 1.2.x
$ git pull
```

2. Cherry pick the first parent branch of the this PR on top of the older branch:
```
$ git cherry-pick -m1 098b9707f244e1ad8c3f2f9b94c050fe7c22bb9e
```

3. You will likely have some merge/cherry-pick conflict here, fix them and commit:

```
$ git commit -am 'Backport PR #39605: REGR: appending to existing excel file created corrupt files'
```

4. Push to a named branch :

```
git push YOURFORK 1.2.x:auto-backport-of-pr-39605-on-1.2.x
```

5. Create a PR against branch 1.2.x, I would have named this PR:

> "Backport PR #39605 on branch 1.2.x"

And apply the correct labels and milestones.

Congratulation you did some good work ! Hopefully your backport PR will be tested by the continuous integration and merged soon!

If these instruction are inaccurate, feel free to [suggest an improvement](https://github.com/MeeseeksBox/MeeseeksDev).
                 cc @twoertwein or @simonjayhawkins for backport 