关于 vue项目 中实现导入Excel表 + 预览生成的Excel

该博客详细介绍了在Vue项目中如何实现导入和预览Excel表的需求。首先,提出了项目场景,包括分步骤填写数据,上传业务Excel表,并进行校验。接着,讲解了功能实现思路,通过后端Python解析文件,前端根据返回数据动态渲染表格。在问题分析部分,博主发现了直接使用v-for渲染会导致表格结构与上传文件不符的问题。为了解决这个问题,博主提供了两种解决方案,利用lodash的chunk方法或自定义的chunk方法对数据进行处理,确保表格布局与上传Excel一致。最后,展示了实现后的效果图。
摘要由CSDN通过智能技术生成

项目场景(需求):

1.分步骤填写数据,填写并上传业务Excel表,完成校验,并生成结果
2.生成的结果要和 业务Excel表一致,便于用户比较
3.若未填写正确,则提示用户错误信息,且重新提交

项目新建流程:

如下图所示:
在这里插入图片描述

业务Excel表:

如图所示:

在这里插入图片描述


功能实现思路:

1. 页面整体结构: 就是在index.vue里面 渲染4个不同的子路由

在这里插入图片描述
2. (重点)实现点击上传Excel——后端完成校验——生成预览效果

思路:

  1. 请求接口,上传文件
  2. 后端通过Python解析文件,把业务表格拆分成多个key,val值返回,如果填写的信息不符合要求,多返回一个error字段
  3. 为了生成预览的时候达到和业务表格一致的效果,因此在写HTML的时候就把结构写好
  4. 请求回来数据的时候直接v-for tr标签 渲染就可以了

代码:

上传组件:

<el-upload
      multiple
      ref="upload"
      class="upload_area"
      :auto-upload="false"
      accept=".xls,.xlsx"
      :on-change="handlePreview"
      :on-remove="handleRemove"
    >
    <el-button
      slot="trigger"
      size="small"
      type="primary"
      v-show="devfiles.length <= 0"
      >选择本地文件</el-button
    >
     <h3 slot="tip" class="el-upload__tip">
       提示:点击按钮后选择要导入的文件。
     </h3>
 </el-upload>

上传方法:

// ele上传相关 主要为了便于构造参数传给后端
handlePreview(file, fileList) {
   
  this.devfiles = [];
  fileList.forEach((item) => {
   
    this.devfiles.push(item.raw);
  }
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值