
第一段引用上面的摘要:
本文档旨在提供一个使用 JavaScript 将 HTML 表格导出为 Excel 文件,并允许用户自定义文件名的解决方案。通过修改现有的 tableToExcel 函数,我们可以创建一个可复用的方法,方便地将网页上的表格数据导出为 Excel 格式,并根据需要设置不同的文件名,避免默认的 "download.xls" 命名。
核心在于修改原有的 tableToExcel 函数,使其创建一个 <a> 标签,并将数据 URI 设置为 href 属性,同时设置 download 属性为期望的文件名。 通过程序触发该链接的点击事件,从而实现下载。
以下是修改后的 tableToExcel 函数:
立即学习“Java免费学习笔记(深入)”;
function tableToExcel(table, name) {
var uri = 'data:application/vnd.ms-excel;base64,';
var 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"><meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8"><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>';
var base64 = function (s) {
return window.btoa(unescape(encodeURIComponent(s)));
};
var format = function (s, c) {
return s.replace(/{(\w+)}/g, function (m, p) {
return c[p];
});
};
if (!table.nodeType) table = document.getElementById(table);
var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML };
var a = document.createElement('a');
a.href = uri + base64(format(template, ctx));
a.download = name + '.xls'; // 设置下载的文件名
a.click(); // 触发下载
}代码解释:
假设你的 HTML 中有一个 ID 为 "myTable" 的表格,你可以这样调用 tableToExcel 函数:
<!DOCTYPE html>
<html>
<head>
<title>Export to Excel</title>
</head>
<body>
<table id="myTable">
<thead>
<tr>
<th>Name</th>
<th>Age</th>
</tr>
</thead>
<tbody>
<tr>
<td>John Doe</td>
<td>30</td>
</tr>
<tr>
<td>Jane Smith</td>
<td>25</td>
</tr>
</tbody>
</table>
<button onclick="tableToExcel('myTable', 'MyExcelFile')">Export to Excel</button>
<script>
function tableToExcel(table, name) {
var uri = 'data:application/vnd.ms-excel;base64,';
var 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"><meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8"><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>';
var base64 = function (s) {
return window.btoa(unescape(encodeURIComponent(s)));
};
var format = function (s, c) {
return s.replace(/{(\w+)}/g, function (m, p) {
return c[p];
});
};
if (!table.nodeType) table = document.getElementById(table);
var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML };
var a = document.createElement('a');
a.href = uri + base64(format(template, ctx));
a.download = name + '.xls'; // 设置下载的文件名
a.click(); // 触发下载
}
</script>
</body>
</html>点击 "Export to Excel" 按钮后,将会下载一个名为 "MyExcelFile.xls" 的 Excel 文件。
通过修改 JavaScript 函数,我们可以轻松地将 HTML 表格导出为 Excel 文件,并自定义文件名。 这种方法简单易用,适用于小型表格数据的导出。 对于大型表格或需要更多功能的场景,建议使用更专业的 Excel 文件生成库或服务器端解决方案。
以上就是JavaScript 导出 HTML 表格到 Excel 并自定义文件名的详细内容,更多请关注php中文网其它相关文章!
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号