REG: read_excel with engine specified raises on non-path/non-buffer
- [x] closes #39528
- [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

looks good to me! if you can merge master and ping on greem This PR enables the possibility that the sheet in `get_sheet_data` is not read-only. We only want to apply the fix from #39486 in the case the sheet is read-only (which is always the case when reading from a path or buffer). Unfortunately it seems to me that openpyxl provides no way of telling if a sheet is read-only or not; for this I've opened [an issue upstream](https://foss.heptapod.net/openpyxl/openpyxl/-/issues/1605).

The method `reset_dimensions` only exists on read-only sheets, and so it can be used for this purpose (even if not ideal).

I've added tests for this and to ensure the fix from #39486 works on non-read-only workbooks. @jreback - green thanks @rhshadrach  @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 95ee0b662b77e2e5f3b9f152b47a3adb7ecae12c
```

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

```
$ git commit -am 'Backport PR #39586: REG: read_excel with engine specified raises on non-path/non-buffer'
```

4. Push to a named branch :

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

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

> "Backport PR #39586 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 @simonjayhawkins  @rhshadrach There have been some changes to master since 1.2 that were not backported (#38710 and  #39008) and trying to apply these changes, I'm getting

```
=================================================== short test summary info ===================================================
FAILED pandas/tests/io/excel/test_readers.py::TestReaders::test_corrupt_bytes_raises[engine_and_read_ext0] - AttributeError:...
FAILED pandas/tests/io/excel/test_readers.py::TestExcelFileRead::test_excel_read_binary[engine_and_read_ext0] - AttributeErr...
================================== 2 failed, 1398 passed, 146 skipped, 10 xfailed in 25.65s ===================================
```

 ahh , needed a `content=`