vue 读取excel内容

tips:

文件地址(按需自己改造去)https://download.csdn.net/download/tdjqqq/85761940

xlsx.js读取日期时,如果默认转成js日期的话,会比正常的时间少43秒,设置日期读取时,直接转成字符串即可,如下图所示,那么转换后的数据就是字符串型日期:"2022-05-09",如果需要到具体时分秒,请自行减43秒。

vue 读取excel内容_第1张图片

//转换数据
                    //let tempSheetData = _this.handleGetData(XLSX.utils.sheet_to_json(workSheet))
                    let tempSheetData = XLSX.utils.sheet_to_json(workSheet, {
                        defval: null            //单元格为空时的默认值
                        , raw: false            //使用w的值而不是v
                        , dateNF: 'yyyy-MM-dd'   //日期格式
                    })

1 需要安装如下依赖内容,该依赖也可以导出excel

npm install -S file-saver
npm install -S xlsx
npm install -S xlsx-style
npm install -D script-loader

2 读取excel内容

说明:

  1. excel表必须要有工作表(sheet),且隐藏的工作表也会一起读取
  2. 结果会以对象形式导出
  3. 我用的组件是ant-vue
  4. 注意,你的上传组件方法,传参中一定要有file,el-element可用on-change,且注意ACTIONS要为空,否则只能读取一次

 组件如下:


  

 

excelRreadFile.js

export const readFile = (file) => {
    return new Promise((resolve) => {
        if (window.FileReader) {
            let reader = new FileReader()
            //将文件读取为二进制码
            reader.readAsBinaryString(file)

            //文件读取成功完成时,若失败,结果为null,否则为读取的结果
            reader.onload = (ev) => {
                resolve(ev.target.result)
            }
        } else {
            //不支持,返回结果为null
            alert('抱歉,您的浏览器,无法支持读取文件功能!')
            resolve(null)
        }
    })
}

只有一张工作表的excel,及结果 

vue 读取excel内容_第2张图片

 vue 读取excel内容_第3张图片

有多张工作表的excel,及结果 

vue 读取excel内容_第4张图片

 vue 读取excel内容_第5张图片

自动转数据格式版本


  

 

结论:

千万要注意,隐藏的sheet表也会被读取出来的,且转换后的数据,会以中文为标题出现,有需要的朋友可以转换下对象,否则可能会有问题。 

你可能感兴趣的:(javascript,vue.js,vue.js,javascript,前端)