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

南宁网站制作-中国互联asp.net 价格查询网站

南宁网站制作-中国互联,asp.net 价格查询网站,暴雪国服回归,安装网站出现dir需求 用户将已有的excel上传到系统#xff0c;并将excel数据同步到页面的表格中进行二次编辑#xff0c;由于excel数据不是最终数据#xff0c;只是批量的一个初始模板#xff0c;后端不需要存储#xff0c;所以该功能由前端独立完成。 吐槽 系统中文件上传下载预览三部…需求 用户将已有的excel上传到系统并将excel数据同步到页面的表格中进行二次编辑由于excel数据不是最终数据只是批量的一个初始模板后端不需要存储所以该功能由前端独立完成。 吐槽 系统中文件上传下载预览三部曲走了一遍万万没想到还要自己实现同步数据。 实际 反手各种资料开始查阅终于找到了可以完美实现该需求的方法来记录下我的实现方案。希望对有需要的小伙伴有帮助。 注意以下为正文重要内容好好阅读不要漏掉重要知识点奥~  涉及到的主要知识点 插件xlsxelementUI  plus中的Upload 上传组件动态设置 ref 展开说说 1、插件xlsx // 在项目根路径 安装xlsx npm install -S xlsx// 在需要使用的页面引入xlsx import * as xlsx from xlsx 2、upload上传组件 上传组件的自动上传方法传参方法详细可翻阅elementUI plus官网 3、动态设置ref 涉及到动态设置ref的原因 一是由于upload组件在设置了 :limit1在上传第一个文件之后浏览器会保存着我们已经上传的文件导致我们继续上传文件的时候页面没有反应解决该问题需要在on-success钩子函数中通过ref来清除已经上传的文件。 templatedivel-uploadrefimportExcelRef:actionVITE_APP_API_URL:limit1:show-file-listfalseclassuploadExcelContent:on-successimportSuccess div title导入exceldiv classimportExcel/div/div/el-upload/div /template script setupimport { ref } from vueconst importExcelRef ref(null)const importSuccess (){importExcelRef.value.clearFiles();} /script 二是因为表单中存在多个表格需要导入excel作为基础数据进行编辑且表格数量不固定是根据后端数据渲染的所以在清空上传文件的时候需要处理未知的多个所以需要动态设置ref。 templatedivel-upload :ref(el) handleSetUploadRefMap(el, rowIndex,compIndex)div title导入excel div classimportExcel/div/div/el-upload/div /template script import { ref } from vue const uploadRefMap ref({}); // 动态设置upload Ref const handleSetUploadRefMap (el,rowIndex,compIndex) {if (el) {uploadRefMap.value[Upload_Ref_${rowIndex}_${compIndex}] el} } /script 需求实现代码 templatediv!-- 上传excel --el-upload:ref(el) handleSetUploadRefMap(el)action:http-requesthttpExcelRequest:limit1:show-file-listfalseclassuploadExcelContent:data{}div title导入excel stylecursor: pointer; div导入excel/div/div/el-upload!-- 列表 --div classexcel-content v-for(rowItem,rowIndex) in excelList :keyrowIndexdiv classcomp v-for(comp,compIndex) in rowItem :keycompIndex{{comp}}/div/div/div /templatescript setup namemainContent import * as xlsx from xlsx import {ElMessage} from element-plus import { ref } from vue const uploadRefMap ref({}); const excelList ref([])// 动态设置upload Ref const handleSetUploadRefMap (el) {if (el) {uploadRefMap.value[Upload_Ref] el} }// 文件上传自定义 const httpExcelRequest async (op) {// 获取除文件之外的参数具体根据实际业务需求来console.log(op.data)// 获取上传的excel 并解析数据let file op.filelet dataBinary await readFile(file);let workBook xlsx.read(dataBinary, { type: binary, cellDates: true })let workSheet workBook.Sheets[workBook.SheetNames[0]]const excelData xlsx.utils.sheet_to_json(workSheet,{ header: 1 })excelList.value excelDataconsole.log(excelData)if(uploadRefMap.value[Upload_Ref]){uploadRefMap.value[Upload_Ref].clearFiles();} }const readFile (file) { return new Promise((resolve) {let reader new FileReader()reader.readAsBinaryString(file)reader.onload (ev) {resolve(ev.target?.result)} }) }/scriptstyle langscss scoped .uploadExcelContent{display: flex;flex-direction: row; } .excel-content{display: flex;flex-direction: row;align-items: center;.comp{width: 200px;font-size: 12px;} } /style 由于业务需求不同对表格数据的详细处理逻辑就不在这里显示了可根据自己的数据结构进行赋值操作运行demo后可以直接在控制台查看拿到的excel数据。 今天就到这里了会继续加油的是亮晶晶的芋头哟~
http://www.w-s-a.com/news/2640/

相关文章:

  • 企业建站的作用是什么南宁公司网站开发
  • 厦门网站建设及维护门户网站开发视频教学
  • 可以做兼职的网站有哪些自动点击器永久免费版
  • 建购物网站怎么建呀网站怎么做中英文交互
  • 网站建设费用计入无形资产做网站用的主机
  • 佛山企业网站建设平台沈阳网站建设培训班
  • 河南企业网站优化外包网站怎么做来流量
  • 网站建设的参考文献网站设计网页的优缺点
  • WordPress多站點支付插件内江市网站建设培训
  • 做做网站已更新动漫制作专业需要学什么
  • dfv印花图案设计网站网站建设应该应聘什么岗位
  • 网站后台管理系统模板下载专业网站推广的公司哪家好
  • 克拉玛依市建设局网站网页设计板式重构
  • 网站新闻专题怎么做湖南营销型网站建设 要上磐石网络
  • 阿里云发布网站成都轨迹公布
  • php网站源码架构谷歌站群系统
  • 潮州网站seowordpress 调用置顶文章
  • 做带会员后台的网站用什么软件旅游网站建设资金请示
  • 商品网站怎么做wordpress 表情拉长
  • 商城网站设计费用网络公司怎样推广网站
  • 视频公司的网站设计工图网
  • 免费快速网站十八个免费的舆情网站