this is different though and *needs* to be different than what this means elsewhere.

Difference is: `convert_numeric` converts str, float and int to number
whereas `coerce_number` takes numeric Excel cells and tries to convert float to int. (so it's only applicable to Excel and possibly to JSON too). 

So `pd.DataFrame({"A": ["1", "2", "3"]}).to_excel()` would read back in as `["1", "2", "3"]` if convert_numeric is False
but `pd.DataFrame({"A": [1, 2, 3]}).to_excel()` would read back in as `[1.0, 2.0, 3.0]` if coerce_number is False, (but be unaffected by convert_numeric.  Also affects indexes.