web应用将<table>标签的内容导出成excel
前言
我们做web应用软件时,时常有导出excel表格的需求,多数情况下,用后台Java或者C#去导出会比较麻烦,今天教大家一个相对比较简单的方法,利用前端JS的几句简单的代码即可导出,前提是你要导出的内容必须是<table>标签里的。
案例
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>导出excel实例</title>
</head>
<body>
<table border="1" id="data">
<tr>
<th>序号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<tr>
<td>1</td>
<td>张三</td>
<td >25</td>
</tr>
<tr>
<td>2</td>
<td>李四</td>
<td>30</td>
</tr>
</table>
<!--必须是a标签,如果是button标签没有href属性,无法设置href属性,最后不能生成excel文件-->
<a id="toExcel">导出excel</a>
</body>
<script>
var element = document.getElementById("toExcel")
var toExcel = function(event) {
// 获得表格数据的html标签和文本d;
var html = "<html><head><meta charset='UTF-8'></head><body>"+document.getElementById("data").outerHTML+"</body></html>";
// 创建一个Blob对象,第一个参数是文件的数据,第二个参数是文件类型属性对象
var blob = new Blob([html],{type:"application/vnd.ms-excel"});
var a = event.target;
// 利用URL的createObjectURL方法为元素a生成blobURL
a.href = URL.createObjectURL(blob);
// 设置文件名
a.download = "人员表";
}
element.onclick = toExcel;
</script>
</html>
页面效果,点击导出excel表格即可。
复杂表格也是如此。