
核心在于利用HTML5的 download 属性。这个属性允许我们指定下载链接的文件名。通过创建一个 <a> 标签,设置其 href 属性为包含Excel数据的Data URI,并设置 download 属性为期望的文件名,就可以实现自定义文件名下载。
创建 tableToExcel 函数: 该函数接收两个参数:table (HTML表格的ID或元素本身) 和 name (期望的文件名)。
构建 Data URI: 使用 data:application/vnd.ms-excel;base64,... 格式的Data URI来表示Excel数据。这部分代码与原始方案基本相同,负责将HTML表格转换为Excel可识别的格式。
创建 <a> 标签: 使用 document.createElement('a') 创建一个新的 <a> 标签。
立即学习“前端免费学习笔记(深入)”;
设置 href 属性: 将 <a> 标签的 href 属性设置为之前构建的Data URI。
设置 download 属性: 这是关键一步。将 <a> 标签的 download 属性设置为期望的文件名,例如 name + '.xls'。
触发下载: 使用 a.click() 模拟点击 <a> 标签,从而触发下载。
function tableToExcel(table, name) {
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"><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>',
base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) },
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();
}引入代码: 将上述 JavaScript 代码添加到你的 HTML 文件中(<script> 标签内)。
调用函数: 在需要导出表格时,调用 tableToExcel 函数,并传入表格的 ID 和期望的文件名。
<button onclick="tableToExcel('myTable', '导出数据')">导出Excel</button>
<table id="myTable">
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>25</td>
</tr>
<tr>
<td>李四</td>
<td>30</td>
</tr>
</tbody>
</table>在这个例子中,点击“导出Excel”按钮会将 ID 为 myTable 的表格导出为名为 "导出数据.xls" 的 Excel 文件。
通过使用 HTML5 的 download 属性,我们可以轻松地自定义 HTML 表格导出到 Excel 时的文件名。 这种方法简单易用,能够满足大部分基本需求。 对于更复杂的需求,可能需要考虑使用更专业的 Excel 生成库。
以上就是如何在将HTML表格导出到Excel时更改文件名?的详细内容,更多请关注php中文网其它相关文章!
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号