Я знаю, что есть много способов скачать / создать Excel из JavaScript, как Sheljs и другие. Я проверил все вопросы, связанные с stackoverflow, или они используют Activex (работает только в IE), или ответы устарели. Но все же я могу создать файл и загрузить его, но когда я пытаюсь открыть, он всегда выдает следующую ошибку:

Как изменить формат и расширение на одно и то же? / Есть ли способы обойти эти ошибки?
const data_type = 'data:application/vnd.ms-excel;base64,';
function createXLSFromJson() {
var xml = '<html xmlns:x="urn:schemas-microsoft-com:office:excel"><head><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>Error Messages</x:Name><x:WorksheetOptions><x:Panes></x:Panes></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml></head><body>';
xml += '<table><thead><tr>';
xml += '<td width="300" valign="top"><b>Location</b></td>'; // Location
xml += '<td width="180" valign="top"><b>Catchment area</b></td>'; // Catchment area
xml += '<td width="180" valign="top"><b>Towns</b></td>'; // Towns
xml += '<td width="180" valign="top"><b>Population</b></td>'; // Population
xml += '<td width="180" valign="top"><b>Average Income per inhabitant</b></td>'; // Average Income per inhabitant
xml += '</tr><tr>';
xml += '<td>Location</td><td>catchment time 1</td>';
xml += '</tr></thead></table></body></html>';
var link = document.createElement("a");
link.download = "export.xls";
link.href = data_type + btoa(xml);
link.click();
}
<button onclick="createXLSFromJson()">click here</button>