Я думаю, что вы неправильно понимаете ответ на вопрос, на который вы ссылались, он предлагает вам использовать URI данных для экспорта.
Excel является сложной задачей, так как формат файла сам по себе является двоичным ( или OOXML ). Если вы просто хотите, чтобы что-то открывалось в Excel, вы можете экспортировать более простой CSV в качестве URI данных. Следующий код немного груб и готов и был протестирован только в Firefox:
function exportData() {
var data = '';
for (var i=1;i<=2;i++) {
var sep = '';
for (var j=1;j<=4;j++) {
data += sep + document.getElementById(i + '_' + j).value;
sep = ',';
}
data += '\r\n';
}
var exportLink = document.createElement('a');
exportLink.setAttribute('href', 'data:text/csv;base64,' + window.btoa(data));
exportLink.appendChild(document.createTextNode('test.csv'));
document.getElementById('results').appendChild(exportLink);
}
Вот разметка страницы:
<input type="number" id="1_1" value="2">,
<input type="number" id="1_2" value="1">,
<input type="number" id="1_3" value="4">,
<input type="number" id="1_4" value="3">
<br>
<input type="number" id="2_1" value="1">,
<input type="number" id="2_2" value="2">,
<input type="number" id="2_3" value="3">,
<input type="number" id="2_4" value="4">
<br>
<button onclick="exportData()">Export as CSV</button>
<div id="results"></div>
Демо здесь . Нажмите на кнопку, чтобы получить ссылку, нажмите на ссылку, и вы получите файл. Измените значения, нажмите на ссылку еще раз, и вы получите другой файл. Firefox заставлял меня выбирать Excel каждый раз, чтобы открыть его, но я не знаю, является ли это моей конфигурацией или общей проблемой.
CSV в Excel 2007 http://www.boogdesign.com/images/external/data-uri-csv.png
Как я уже сказал, тестируется только в Firefox, и он будет работать только в браузерах, которые поддерживают URI данных . Вам также нужна функция window.btoa () или реализация собственного base64 кодера .