报表导出HTML格式怎么转换为EXCEL,将HTML表导出为Excel保留格式

我的网页上有多个表,我想将这些表导出到同一个excel文件,目前我有一个代码(代码来自这里的一篇文章),但问题是excel文件创建得很好,但没有任何样式。例如:我有一个td,它有一个

TD

标记为

科尔斯潘5

但这不会保存在我的xls文件中。我还有另一个代码只导出一个表,这段代码导出的信息与样式。如何导出具有样式的表?

下面是导出多个表(不带样式)的代码

$(document).ready(function () {

});

var tablesToExcel = (function () {

var uri = 'data:application/vnd.ms-excel;base64,'

, tmplWorkbookXML = '<?xml version="1.0"?><?mso-application progid="Excel.Sheet"?>'

+ 'Axel Richter{created}'

+ ''

+ ''

+ ''

+ ''

+ '{worksheets}'

, tmplWorksheetXML = '

'

, tmplCellXML = '{data}'

, base64 = function (s) { return window.btoa(unescape(encodeURIComponent(s))) }

, format = function (s, c) { return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; }) }

return function (tables, wsnames, wbname, appname) {

var ctx = "";

var workbookXML = "";

var worksheetsXML = "";

var rowsXML = "";

for (var i = 0; i < tables.length; i++) {

if (!tables[i].nodeType) tables[i] = document.getElementById(tables[i]);

for (var j = 0; j < tables[i].rows.length; j++) {

rowsXML += ''

for (var k = 0; k < tables[i].rows[j].cells.length; k++) {

var dataType = tables[i].rows[j].cells[k].getAttribute("data-type");

var dataStyle = tables[i].rows[j].cells[k].getAttribute("data-style");

var dataValue = tables[i].rows[j].cells[k].getAttribute("data-value");

dataValue = (dataValue) ? dataValue : tables[i].rows[j].cells[k].innerHTML;

var dataFormula = tables[i].rows[j].cells[k].getAttribute("data-formula");

dataFormula = (dataFormula) ? dataFormula : (appname == 'Calc' && dataType == 'DateTime') ? dataValue : null;

ctx = {

attributeStyleID: (dataStyle == 'Currency' || dataStyle == 'Date') ? ' ss:StyleID="' + dataStyle + '"' : ''

, nameType: (dataType == 'Number' || dataType == 'DateTime' || dataType == 'Boolean' || dataType == 'Error') ? dataType : 'String'

, data: (dataFormula) ? '' : dataValue

, attributeFormula: (dataFormula) ? ' ss:Formula="' + dataFormula + '"' : ''

};

rowsXML += format(tmplCellXML, ctx);

}

rowsXML += ''

}

ctx = { rows: rowsXML, nameWS: wsnames[i] || 'Sheet' + i };

worksheetsXML += format(tmplWorksheetXML, ctx);

rowsXML = "";

}

ctx = { created: (new Date()).getTime(), worksheets: worksheetsXML };

workbookXML = format(tmplWorkbookXML, ctx);

console.log(workbookXML);

var link = document.createElement("A");

link.href = uri + base64(workbookXML);

link.download = wbname || 'Workbook.xls';

link.target = '_blank';

document.body.appendChild(link);

link.click();

document.body.removeChild(link);

}

})();

a

Export to Excel

这是只导出一个表(保留样式)的代码

更新

在寻找解决方案时,我发现问题在于

XML

而不是

HTML

所以现在的问题是,我怎样才能用上面的代码做到这一点呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值