Я вытаскиваю таблицу из html и получаю результат в формате Excel напрямую. Мой код следующий.
function excelExportTableHtml(tableId, fileName = "serviscell") {
var dateTime = new Date().toLocaleDateString();
var html = $("#" + tableId).html();
$("body").append('<div id="table-excel"></div>');
$("#table-excel").html(html);
var elt = document.getElementById("table-excel");
var wb = XLSX.utils.table_to_book(elt, { sheet: "Sheet JS", dateNF: 'DD.MM.YYYY HH:mm:ss' });
wb.Worksheets[0].SetColumnWidth(2, 500);
var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'binary' });
function s2ab(s) {
var buf = new ArrayBuffer(s.length);
var view = new Uint8Array(buf);
for (var i = 0; i < s.length; i++) view[i] = s.charCodeAt(i) & 0xFF;
return buf;
}
saveAs(new Blob([s2ab(wbout)], { type: "application/octet-stream" }), fileName + dateTime + '.xlsx');
html = null;
$("#table-excel").remove();
}
Но у меня проблема, заключающаяся в том, что я хочу расширить width
своих столбцов. Например, сделав значение ширины всех столбцов 300px
.
Я пробовал;
var wscols = [
{wch:6},
{wch:7},
{wch:10},
{wch:20}
];
ws['!cols'] = wscols;