Excel поддерживает использование стилей CSS, но только если в элементе есть один класс. Если имеется несколько классов, тогда он не будет выполнять какой-либо стиль для элемента, см. Класс стилей CSS, не объединяющийся в Excel
Сказав это, это код, который я собрал, чтобы захватить все стили на странице и экспортировать таблицу HTML. Это грубая сила, хватайте все, но вы, вероятно, можете соединить его, если знаете специфику. Функция возвращает jQuery Promise. Из этого вы можете сделать что угодно с результатом.
function excelExportHtml(table, includeCss) {
if (includeCss) {
var styles = [];
//grab all styles defined on the page
$("style").each(function (index, domEle) {
styles.push($(domEle).html());
});
//grab all styles referenced by stylesheet links on the page
var ajaxCalls = [];
$("[rel=stylesheet]").each(function () {
ajaxCalls.push($.get(this.href, '', function (data) {
styles.push(data);
}));
});
return $.when.apply(null, ajaxCalls)
.then(function () {
return "<html><style type='text/css'>" + styles.join("\n") + "</style>\n" + table.outerHTML + "</html>";
});
}
else {
return $.when({ owcHtml: table.outerHTML })
.then(function (result) {
return "<html>" + result.owcHtml + "</html>";
});
}
}