使用 javascript 导出 excel 时合并列?
MERGE column when export excel using javascript?
我可以导出 excel 但问题是我无法合并 excel header 列。我附上了一张你可以检查的图片。这就是我想要导出的内容。
我想在 excel 中导出此 table。
<table id="" class="uk-report-table table table-striped">
<thead>
<tr>
<th colspan="1">Date Range</th>
<th colspan="5">
<h2>Last 30 Days</h2>
</th>
<th colspan="5">
<h2>Previous 30 Days</h2>
</th>
</tr>
<tr>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
<th>E</th>
<th>A2</th>
<th>B2</th>
<th>C2</th>
<th>D2</th>
<th>E2</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
我用这段代码导出它工作正常。我需要合并第一列单元格。
如果有任何解决方案,您可以避免使用此解决方案。
参考文献link:How to export Javascript array data to excel on the client side
var lineArray = [];
result_table.forEach(function(infoArray, index) {
var line = infoArray.join(" \t");
lineArray.push(index == 0 ? line : line);
});
var csvContent = lineArray.join("\r\n");
var excel_file = document.createElement('a');
excel_file.setAttribute('href', 'data:application/vnd.ms-excel;charset=utf-8,' + encodeURIComponent(csvContent));
excel_file.setAttribute('download', 'Visitor_History.xls');
document.body.appendChild(excel_file);
excel_file.click();
document.body.removeChild(excel_file);
我建议使用基于 javascript 的 excel 库(例如 SheetJS)来生成真正的 excel 文件。与通过 csv 或 html 伪造 mime 类型的文件伪造它相比,您将有更多的选择,这就是您的示例代码所做的。
这是一个fiddle。
<html>
<head>
<script src="//unpkg.com/xlsx/dist/xlsx.full.min.js" type="text/javascript"></script>
<script>
function exportFile(){
var wb = XLSX.utils.table_to_book(document.getElementById('sampletable'));
XLSX.writeFile(wb, 'sample.xlsx');
return false;
}
</script>
</head>
<body>
<table id="sampletable" class="uk-report-table table table-striped">
<thead>
<tr>
<th colspan="1">Date Range</th>
<th colspan="5">
<h2>Last 30 Days</h2>
</th>
<th colspan="5">
<h2>Previous 30 Days</h2>
</th>
</tr>
<tr>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
<th>E</th>
<th>A2</th>
<th>B2</th>
<th>C2</th>
<th>D2</th>
<th>E2</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<button onclick="return exportFile()">Export</button>
</body>
</html>
我可以导出 excel 但问题是我无法合并 excel header 列。我附上了一张你可以检查的图片。这就是我想要导出的内容。
我想在 excel 中导出此 table。
<table id="" class="uk-report-table table table-striped">
<thead>
<tr>
<th colspan="1">Date Range</th>
<th colspan="5">
<h2>Last 30 Days</h2>
</th>
<th colspan="5">
<h2>Previous 30 Days</h2>
</th>
</tr>
<tr>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
<th>E</th>
<th>A2</th>
<th>B2</th>
<th>C2</th>
<th>D2</th>
<th>E2</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
我用这段代码导出它工作正常。我需要合并第一列单元格。 如果有任何解决方案,您可以避免使用此解决方案。
参考文献link:How to export Javascript array data to excel on the client side
var lineArray = [];
result_table.forEach(function(infoArray, index) {
var line = infoArray.join(" \t");
lineArray.push(index == 0 ? line : line);
});
var csvContent = lineArray.join("\r\n");
var excel_file = document.createElement('a');
excel_file.setAttribute('href', 'data:application/vnd.ms-excel;charset=utf-8,' + encodeURIComponent(csvContent));
excel_file.setAttribute('download', 'Visitor_History.xls');
document.body.appendChild(excel_file);
excel_file.click();
document.body.removeChild(excel_file);
我建议使用基于 javascript 的 excel 库(例如 SheetJS)来生成真正的 excel 文件。与通过 csv 或 html 伪造 mime 类型的文件伪造它相比,您将有更多的选择,这就是您的示例代码所做的。
这是一个fiddle。
<html>
<head>
<script src="//unpkg.com/xlsx/dist/xlsx.full.min.js" type="text/javascript"></script>
<script>
function exportFile(){
var wb = XLSX.utils.table_to_book(document.getElementById('sampletable'));
XLSX.writeFile(wb, 'sample.xlsx');
return false;
}
</script>
</head>
<body>
<table id="sampletable" class="uk-report-table table table-striped">
<thead>
<tr>
<th colspan="1">Date Range</th>
<th colspan="5">
<h2>Last 30 Days</h2>
</th>
<th colspan="5">
<h2>Previous 30 Days</h2>
</th>
</tr>
<tr>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
<th>E</th>
<th>A2</th>
<th>B2</th>
<th>C2</th>
<th>D2</th>
<th>E2</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<button onclick="return exportFile()">Export</button>
</body>
</html>