vue纯前端 导入excel 并解析成json
1.安装xlsx
npm i xlsx
2.封装函数
引入xlsx
const XLSX = require('xlsx');
/**
* 把文件按照二进制进行读取
* @param file
* @returns
*/
export function readFile(file) {
return new Promise(resolve=>{
let reader = new FileReader();
reader.readAsBinaryString(file);
reader.onload = ev =>{
resolve(ev.target?.result);
}
});
}
/**
* 根据sheet索引读取Excel文件中的数据
* @param file 文件
* @param sheetIndex excel文件中sheet表索引 默认是从0开始
* @returns 将表中的数据以json形式的数据返回
*/
export async function readExcelFile(file,sheetIndex)
{
let data = await readFile(file);
let workbook = XLSX.read(data,{type:'binary'});
let worksheet = workbook.Sheets[workbook.SheetNames[sheetIndex]];
data = XLSX.utils.sheet_to_json(worksheet);
return data;
}
3.在vue中使用
如果使用ant vue 的 a-upload组件
在beforeUpload中:
beforeUpload(file,fileList) {
const isXlsxOrXls =
file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ||
file.type === 'application/vnd.ms-excel'
if (!isXlsxOrXls) {
this.$message.error('您只能上传excel文件!')
} else {
let data = readExcelFile(file, 0)
data.then((d) => {
this.isshowFooter='true'
this.isSuccess=false
this.companyList=[]
this.companyList=d
this.title='公司列表'
this.pagination.total=d.length
//读取文件数据
// console.log(d)
})
.catch(err=>{
console.log(err);
this.companyList=[]
this.$message.error('文件格式错误或文件内容个数错误!')
})
return false
}
return isXlsxOrXls
},
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具