BUG: Ignore chartsheets
- [x] closes #41448
- [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

Issue #41448 relates specifically to our openpyxl engine, and is resolved by this commit. However, the bug also exists in our pyxlsb engine and cannot be resolved until the upstream https://github.com/willtrnr/pyxlsb/issues/33 is addressed. I propose closing #41448 and leaving the pyxlsb case as an xfail for now. Let me know if there's a better way to track this.
@datapythonista I think #41665 tries to address the CI failure on the numpydev build @datapythonista CI is all green now. Thanks for taking a look at this. Hi @rhshadrach, thanks for the questions. I've attempted to address them in the docstring without getting too wordy. String and integer inputs are interpreted with respect to `ExcelFile.sheet_names`, which now excludes chart sheets, so the accepted inputs should be internally consistent and the default `sheet_name=0` won't crash if there's a chart sheet in the first position. Thanks @ahawryluk - makes sense. One last question - what is the error raised if the sheet name (as a string) is a chart sheet? If it's sensible, can you add a test for this. @rhshadrach Good idea. It raises the same ValueError you would get for an invalid sheet name, so I've added the tests for loading by str or by an int out of range. Thanks @ahawryluk! 