html:
<h1>使用a标签方式将json导出csv文件</h1>
<button onclick="tableToExcel()">导出</button>
js:
const tableToExcel = () => {
// 要导出的json数据
const jsonData = [
{
标题1: "行标题1",
标题2: "行标题2",
标题3: "行标题3",
标题4: "行标题4",
标题5: "行标题5",
标题6: "行标题6",
标题7: "行标题7",
标题8: "行标题8",
标题9: "行标题9",
标题10: "行标题10",
标题11: "行标题11",
},
];
// 列标题,逗号隔开,每一个逗号就是隔开一个单元格
let str = `标题1,标题2,标题3,标题4,标题5,标题6,标题7,标题8,标题9,标题10,标题11\n`;
// 增加\t为了不让表格显示科学计数法或者其他格式
for (let i = 0; i < jsonData.length; i++) {
for (const key in jsonData[i]) {
str += `${jsonData[i][key] + "\t"},`;
}
str += "\n";
}
// encodeURIComponent解决中文乱码
const uri =
"data:text/csv;charset=utf-8,\ufeff" + encodeURIComponent(str);
// 通过创建a标签实现
const link = document.createElement("a");
link.href = uri;
// 对下载的文件命名
link.download = "文档.csv";
link.click();
};