阅读 88

JSON与excel之间的相互转化(Vue)

这几天项目中有个需求,是对数据进行批量操作

上传时候需要把excel转为json发给后端,而在导出时需要将json转为excel文件

我是借用了xlsx这个库来完成的,在此记录一下

npm i xlsx安装相关依赖

设置一个input用于

 

引入对应的框架

import xlsx from ‘xlsx‘

excel转json

_toJson(){
    let file = e.target.files[0]
      let reader = new FileReader()
      reader.onload = (event) => {
        console.log(event);
        let data = event.target.result;
        const workbook = XLSX.read(data, {
          type: ‘binary‘
        });
        let resultArray = []
        workbook.SheetNames.forEach(function (sheetName) {
          console.log(‘workbook.Sheets[sheetName]‘, workbook.Sheets[sheetName]);
          const data = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName], { header: 1 });
          console.log(‘data‘, data);
          let mainData = data.slice(1)
          if (mainData.length > 0) {
            for (let row = 0; row < mainData.length; row++) {
              let rowData = {}
              for (let col = 0; col < data[0].length; col++) {
                rowData[data[0][col]] = mainData[row][col] || ‘‘
              }
              resultArray.push(rowData)
            }
          } else {
            alert(‘至少需要一行有效数据‘)
          }
        })
        console.log(‘resultArray‘, resultArray);

      }
      reader.readAsBinaryString(file);
}

json转excel

_toExcel () {
      let data = [{ "业务政策": 1, "产品名称": 2, "证件号码": 5 }, { "产品名称": 2 }]
      const ws = XLSX.utils.json_to_sheet(data);
      const wb = XLSX.utils.book_new();
      XLSX.utils.book_append_sheet(wb, ws, "People");
      XLSX.writeFile(wb, "sheetjs.xlsx");
    }

原文:https://www.cnblogs.com/axu1997/p/14813070.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐