<html>
<head>
<pstyle="font-size:20px;color:red;">使用a标签方式将json导出csv文件</p>
<buttononclick='tableToExcel()'>导出</button>
</head>
<body>
<script>
functiontableToExcel(){
//要导出的json数据
constjsonData=[
{
name:'A用户',
phone:'123456789',
email:[email protected]'
},
{
name:'B用户',
phone:'123456789',
email:[email protected]'
},
{
name:'C用户',
phone:'123456789',
email:[email protected]'
},
{
name:'D用户',
phone:'123456789',
email:[email protected]'
},
]
//列标题,逗号隔开,每一个逗号就是隔开一个单元格
letstr=`姓名,电话,邮箱\n`;
//增加\t为了不让表格显示科学计数法或者其他格式
for(leti=0;i<jsonData.length;i++){
for(letiteminjsonData[i]){
str+=`${jsonData[i][item]+'\t'},`;
}
str+='\n';
}
//***关键代码
//encodeURIComponent解决中文乱码
leturi='data:text/csv;charset=utf-8,\ufeff'+encodeURIComponent(str);
//通过创建a标签实现
letlink=document.createElement("a");
link.href=uri;
//***关键代码
//对下载的文件命名
link.download="json导出数据表.csv";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
</script>
</body>
</html>
|