前端生成并下载excel文件

318 阅读1分钟

纯JS生成excel文件,无需引入JS库。

基于JSON的数据结构,生成对应的excel文件。

代码如下:

let dataJson = [
        {name:1,age:1,adress:1},
        {name:2,age:2,adress:2},
        {name:2,age:2,adress:2},
        {name:2,age:2,adress:2},
      ];

downData(data,name){
      let csvContent=[];
      let keyAry = Object.keys(data[0]);
      csvContent = data.map(item=>{
        let newItem = keyAry.map(item1=>{
          return item[item1]
        })
        return newItem.toString()+'\n'
      })
      csvContent.unshift(keyAry.toString()+'\n')
      const bom = '\uFEFF';
      let csvData = bom;
      csvContent.forEach(item=>{
        csvData+=item
      })
      const blob = new Blob([csvData],{type:'text/csv;charset=utf-8;'});
      const link = document.createElement('a');
      if(link.download !== undefined){
        link.href = URL.createObjectURL(blob);
        link.download = name;
        link.style.visibility = 'hidden';
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
      }
    },
    
    downData(dataJson,'XXXX年XX月XX日XX报表')
    ```