的完整 HTML,然后将 HTML 内容包装成 Blob,最后通过动态创建 标签触发浏览器下载。
需要注意的是,这种方法生成的本质上是可以被 Excel 识别的 HTML 表格文件,文件扩展名通常使用 .xls,并不是真正意义上的 .xlsx Office Open XML 文件。
二、使用 Blob 导出表格时需要注意编码
中文数据是 HTML 表格导出中比较容易出现问题的地方。如果没有正确设置字符编码,打开文件后可能出现中文乱码。
推荐在生成内容时明确指定 UTF-8:
同时 Blob 的 MIME 类型可以设置为:
完整写法如下:
现代浏览器通常能够正确处理 UTF-8 内容,不过不同 Excel 版本以及不同操作系统环境仍可能存在兼容性差异。
三、只导出表格数据而不是整个页面
如果页面中的表格包含按钮、操作列等内容,直接导出 outerHTML 可能会把不需要的数据一起导出。
例如:
如果不希望 Excel 中出现“操作”列,可以在导出之前创建一个临时表格,只复制需要的数据。
实际项目中也可以通过给不需要导出的列增加特殊 class 来判断,而不是简单删除最后一列。例如:
导出前执行:
这种方案更加灵活。
四、使用 SheetJS 导出真正的 XLSX 文件
如果需求明确要求生成 .xlsx 文件,推荐使用 SheetJS 等专业库。
引入库: