当前位置: 首页 > news >正文

vue3前端解析excel文件

在这里插入图片描述
在这里插入图片描述

基础解析流程

项目开发中遇到需要前端解析excel文件,主要分为以下核心步骤:

  1. 读取excel文件数据(二进制/缓冲区)
  2. 解析为workbook(工作簿)对象
  3. 提取目标工作表(worksheet)
  4. 转换为JSON/数据可操作的格式

前端解析

使用 上传Excel后解析

安装XLSX库

npm install xlsx

vue代码

 <el-button type="primary" @click="updatefile">导入excel</el-button><!-- 隐藏的文件上传输入框 --><input ref="fileInputRef" type="file" accept=".xlsx, .xls" @change="handleFileUpload" style="display: none" /><el-table :data="tableList"><el-table-column label="表格1" prop="name1" /><el-table-column label="表格2" prop="name2" /><el-table-column label="表格3" prop="name3" /><el-table-column label="表格4" prop="name4" /><el-table-column label="表格5" prop="name5" /><el-table-column label="表格6" prop="name6" /><el-table-column label="表格7" prop="name7" /></el-table>

js代码

import { ref } from 'vue'
import * as XLSX from 'xlsx'
const message = useMessage()
const fileInputRef = ref()
const tableList = ref<any[]>([])
// 点击上传按钮触发文件选择
const updatefile = () => {if (fileInputRef.value) {fileInputRef.value.click()}
}
// 文件上传 
const handleFileUpload = (event: Event) => {const target = event.target as HTMLInputElementconst files = target.filesif(files && files.length > 0) {const file = files[0]// 检查文件类型const validTypes = ['application/vnd.ms-excel','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet','.xlsx','.xls']const isExcel = validTypes.some((type) => file.type.includes(type) || file.name.endsWith(type))if (!isExcel) {return message.error('请上传正确的文件格式')}const reader = new FileReader()try {reader.onload = async (e) => {const data = e.target?.resultconst workbook = XLSX.read(data, { type: 'array' })const sheetName = workbook.SheetNames[0]const worksheet = workbook.Sheets[sheetName]// 将工作表转换为json数据const jsonData = XLSX.utils.sheet_to_json(worksheet)tableList.value = jsonData}// 核心: 在 onload 定义后,调用 readAsArrayBuffer 触发读取reader.readAsArrayBuffer(file)// 可选:监听读取错误reader.onerror = () => {message.error('文件读取错误,请重试');}} catch (error) { console.log('error', error)}}
}
http://www.dtcms.com/a/540502.html

相关文章:

  • 5.1.5 大数据方法论与实践指南-数据仓库存储格式选择
  • 网站空间1g多少钱怎么做网站加盟
  • 学校网站怎么做推广上海网站建站多少钱
  • php网站开发心得体会漯河市网站建设
  • 打工人日报#20251028
  • 手写前端脚手架cli
  • 《内蒙古自治区本级政务信息化运行维护项目预算支出方案编制规范和预算支出标准(试行)》(内财预〔2024〕194号)标准解读
  • 在 Spring Boot 项目中使用分页插件的两种常见方式
  • MapReduce运行实例
  • “透彻式学习”与“渗透式学习”
  • 惠洋科技H5528K 100V高耐压2.5A 支持24V30V36V48V60V72V80V降压6V9V12V车灯供电恒流芯片IC 高低亮
  • Spring Boot3零基础教程,Actuator 导入,笔记82
  • 如何用PyQt5实现一个简易计算器应用
  • Spring Boot 事务管理深度解析
  • 【系统分析师】高分论文:软件的系统测试及应用(电子商务门户网站系统)
  • 尚硅谷React扩展笔记
  • 8.模板和string(下)
  • 5G专网客户案例分享:基于可编程5G的工业互联网产线验证系统
  • 前端:前端开发中,实现水印(Watermark)
  • 网站排名方法胶州网站建设 网络推广
  • 潍坊商城网站建设修改wordpress样式
  • AI智能体从系统智能到生态智能:SmartMediaKit 如何成为智能体时代的视频神经系统
  • 【音视频】H.264关键帧识别
  • AI智能相机未来应用
  • grafana做状态变化的监控图表
  • 19.高级的ACL
  • 网站推广广告营销方案海南省建设培训网站报名
  • Excel怎么根据居民身份证号码获取性别?
  • 张家港网站设计织梦网站文章发布模板下载
  • 在Ubuntu通过命令行安装MySQL(tabby远程)