赞
踩
原始的excel文件:
转化后的数据
使用方法,
1、安装xlsx插件不用再说了,npm
2、新建util文件,我这里是将代码它放在util文件夹下的index.js中,代码如下:
- import * as XLSX from 'xlsx'
-
- // 把文件以二进制的方式读出来
- let analyseExcelToByte=(file)=>{
- return new Promise(resolve=>{
- let reader=new FileReader();
- reader.readAsBinaryString(file);
- reader.onload=ev=>{
- resolve(ev.target.result);
- }
- })
- }
-
- // 转换得对应字段表:****这里需要根据自己的需要修改,一般是根据excel中的表头进行设置
- let revertChart={
- name:{
- text:"姓名",
- type:"string"
- },
- phone:{
- text:"联系电话",
- type:"string",
- },
- age:{
- text:"年纪",
- type:"string",
- },
- local:{
- text:"籍贯",
- type:"string",
- }
- }
- // 把读取出来得数据变为组后可以传递给服务器的数据(姓名:name、联系电话:phone、年纪:age、籍贯:local)
- let parseToServe=(outdata)=>{
- let arr=[];
- outdata.forEach(item=>{
- let obj={};
- for(let key in revertChart){
- if(!revertChart.hasOwnProperty(key)) break;
- let o=revertChart[key],
- text=o.text,
- type=o.type;
- o=item[text]||"";
- type==="string" ? (o=String(o)):null;
- type==="number" ? (o=Number(o)):null;
- obj[key]=o
- }
- arr.push(obj)
- })
- return arr
- }
-
- // 前端文件导入解析成传递给服务器的数据
- export let resolveFile=async (file)=>{
- let data= await analyseExcelToByte(file);
- // 将文件以二进制读出
- return new Promise(resolve=>{
- let workbook=XLSX.read(data,{type:"binary"})
- // 将文件中的第一个sheet以json的方式读出outdata
- let worksheets=workbook.Sheets[workbook.SheetNames[0]];
- let outdata=XLSX.utils.sheet_to_json(worksheets)
- let serveData=parseToServe(outdata)
- resolve(serveData)
- })
- }
3、注意根据自己的需要修改 revertChart里面的字段内容,一般是根据自己的excel文件中的字段来设置
4、在需要的页面引入util文件,
import {resolveFile} from '../plugin/fileUtils'
直接在页面中使用,就可以看到改造后的数据了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。