如何在导出 HTML 表格到 Excel 时更改文件名

霞舞
发布: 2025-09-14 21:26:00
原创
1030人浏览过

如何在导出 html 表格到 excel 时更改文件名

修改 HTML 表格导出 Excel 时的文件名

本文旨在解决将 HTML 表格导出为 Excel 文件时,默认文件名总是 "download" 的问题。通过修改 JavaScript 代码,利用 <a> 标签的 download 属性,允许用户自定义导出的 Excel 文件名。

核心思路:

核心在于创建一个 <a> 标签,设置其 href 属性为 Excel 数据的 Data URI,然后设置 download 属性为期望的文件名,最后模拟点击该链接,触发下载。

修改后的 JavaScript 代码:

立即学习前端免费学习笔记(深入)”;

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(); // 触发下载
}
登录后复制

代码解释:

  1. a.download = name + '.xls';: 这行代码是关键。它创建了一个 <a> 标签,并将 download 属性设置为 name + '.xls'。name 参数是传递给 tableToExcel 函数的文件名,.xls 是 Excel 文件的扩展名。 download 属性告诉浏览器,当用户点击链接时,应该下载链接指向的资源,并使用指定的文件名。
  2. a.click();: 这行代码模拟点击 <a> 标签,触发下载操作。

使用方法:

图改改
图改改

在线修改图片文字

图改改 455
查看详情 图改改

在 HTML 中,你可以使用一个按钮来触发导出功能:

<button onclick="tableToExcel('yourTableId', 'MyExcelFile')">导出到 Excel</button>

<table id="yourTableId">
  <thead>
    <tr>
      <th>Header 1</th>
      <th>Header 2</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Data 1</td>
      <td>Data 2</td>
    </tr>
  </tbody>
</table>
登录后复制

将 yourTableId 替换为你的表格的 ID,MyExcelFile 替换为你想要的文件名。 当点击按钮时,将会下载一个名为 MyExcelFile.xls 的 Excel 文件。

注意事项:

  • 确保你的 HTML 表格有一个唯一的 ID。
  • name 参数是导出的文件名,不包含扩展名。 函数会自动添加 .xls 扩展名。
  • 此方法依赖于浏览器对 Data URI 和 download 属性的支持。 大多数现代浏览器都支持这些特性。

总结:

通过使用 JavaScript 创建一个 <a> 标签,并设置其 download 属性,我们可以轻松地控制将 HTML 表格导出到 Excel 时的文件名。 这种方法简单易用,并且兼容大多数现代浏览器,是解决 Excel 导出文件名问题的有效方案。

以上就是如何在导出 HTML 表格到 Excel 时更改文件名的详细内容,更多请关注php中文网其它相关文章!

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号