XLSM can carry macros, which email systems often block and which other spreadsheet apps cannot run. JSON is what APIs and most programming languages read natively. XLSM is at home in workbooks that carry VBA macros; JSON is the usual choice for APIs and data exchanged between programs.
The first row is read as column names, and every row after it becomes one object, keyed by those names. A header such as address.city is turned back into a nested address with a city. A workbook with a single sheet becomes a plain list; one with several sheets becomes an object keyed by sheet name. Formulas come across as the values they last calculated, and formatting such as colours and column widths is not carried over. The macros in an XLSM are neither run nor copied; only the cell values are read.