Формат файла и расширение не совпадают: Excel генерируется с помощью JavaScript - PullRequest
0 голосов
/ 25 января 2019

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

enter image description here

Как изменить формат и расширение на одно и то же? / Есть ли способы обойти эти ошибки?

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...