Erd*_*maz 6 javascript excel xls html-table xlsx
我有一个关于将html表导出为xlsx文件的问题.我做了一些工作,现在我可以将其导出为xls,但我需要将其导出为xlsx.
在这里我的jsFiddle: https ://jsfiddle.net/272406sv/1/
在这里我的HTML:
<table id="toExcel" class="uitable">
<thead>
<tr>
<th>Kampanya Basligi</th>
<th>Kampanya Türü</th>
<th>Kampanya Baslangiç</th>
<th>Kampanya Bitis</th>
<th style="text-align: center">Aksiyonlar</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="Item in campaign.campaignList">
<td> Item.CampaignTitle </td>
<td> Item.CampaignHotelType </td>
<td> Item.CampaignHotelCheckInDate) </td>
<td>Item.CampaignHotelCheckOutDate</td>
<td style="text-align: center">
<button> Some Action </button>
</td>
</tr>
</tbody>
</table>
<button onclick="exceller()">EXCEL</button>
Run Code Online (Sandbox Code Playgroud)
我的js:
<script>
function exceller() {
var uri = 'data:application/vnd.ms-excel;base64,',
template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>',
base64 = function(s) {
return window.btoa(unescape(encodeURIComponent(s)))
},
format = function(s, c) {
return s.replace(/{(\w+)}/g, function(m, p) {
return c[p];
})
}
var toExcel = document.getElementById("toExcel").innerHTML;
var ctx = {
worksheet: name || '',
table: toExcel
};
var link = document.createElement("a");
link.download = "export.xls";
link.href = uri + base64(format(template, ctx))
link.click();
}
</script>
Run Code Online (Sandbox Code Playgroud)
一个伟大的导出客户端工具html表来xlsx,xls,csv,或者txt是TABLEEXPORT由clarketm(我).它是一个简单,易于实现,功能齐全的库,具有一系列可配置的属性和方法.
$ npm install tableexport
Run Code Online (Sandbox Code Playgroud)
TableExport(document.getElementsByTagName("table"));
// OR using jQuery
$("table").tableExport();
Run Code Online (Sandbox Code Playgroud)
查看简明文档或者直接
TableExport访问Github以获取完整的功能列表.
如果不返回服务器,您将无法将其导出为 XLSX。XLSX 文件是压缩在一起的 XML 文件的集合。这意味着您确实需要创建多个文件。这是客户端 JS 不可能做到的。
相反,您应该创建一个函数,从 HTML 表中检索数据并将其发送到您的服务器。然后,服务器可以为您创建 XLSX 文件(有很多可用的库!)并将其发送回客户端以供下载。
如果您希望拥有庞大的数据集,则服务器上的 XLSX 创建应作为异步过程完成,完成后通知用户(而不是让用户等待文件创建)。
让我们知道您在服务器上使用哪种语言,我们将能够向您推荐一些好的库。