Только есть мелкие ошибки. Приведу пример чуть исправленного кода:
//Функция записи HTML-таблицы с последующим скачиванием
function exportData(){
//Собираем данные таблицы
var csv_data = [];
var table = document.getElementById('smeta_xls');
var rows = table.getElementsByTagName('tr');
for (var i = 0; i < rows.length; i++) {
var cols = rows[i].querySelectorAll('td,th');
var csvrow = [];
for (var j = 0; j < cols.length; j++) {
csvrow.push(cols[j].innerHTML);
}
csv_data.push(csvrow.join(";"));
}
csv_data = csv_data.join('\n');
//Делаем перекодировку символов (убираем "иероглифы")
var uint8 = new Uint8Array(csv_data.length);
for(var i = 0; i < csv_data.length; i++) {
var x = csv_data.charCodeAt(i);
if (x >= 1040 && x <= 1103) { x -= 848; }
else if (x == 1025) { x = 168; }
else if (x == 1105) { x = 184; }
uint8[i] = x;
}
//Скачиваем полученный файл
var file = new Blob([uint8], {type: 'text/csv'});
var link = document.createElement('a');
var url = window.URL.createObjectURL(file);
link.href = url;
link.download = "Смета_25072022.csv";
link.style.display = 'none';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
Стоит отметить, что на Windows работает хорошо. На Android данный способ не помогает.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Только есть мелкие ошибки. Приведу пример чуть исправленного кода:
Стоит отметить, что на Windows работает хорошо. На Android данный способ не помогает.