vue2+element+导入Excel表格并携带参数

(一)、一个按钮实现导入功能

(1)页面实现

action="写后端导入接口地址"

:on-change="方法名称"

:file-list="导入的文件列表"

<el-form-item class="selectFile">
        <el-upload
          class="upload-demo"
          action="/api/People/importPeopleExcel"
          :on-change="handleChange"
          :file-list="fileList"
        >
          <el-button size="small" type="success">导入模板</el-button>
        </el-upload>
</el-form-item>

(2)data中定义数组

fileList: [],

(3)方法

 handleChange(file, fileList) {
      this.fileList = fileList.slice(-3);
    },

(二)、两个按钮实现导入功能

(1)页面实现

 <el-form-item class="buttonItem"
        ><el-upload
          action="https://jsonplaceholder.typicode.com/posts/"  //官方定义写法
          multiple
          :file-list="fileList"  //文章列表
          :http-request="modeUpload"  //覆盖默认的上传方法
        >
          <el-button size="small" type="warning" 
            >点击选择文件<i class="el-icon-download el-icon--right"></i
          ></el-button>
        </el-upload>
        <el-button @click="upload" type="primary" size="small"
          >点击上传文件</el-button
        ></el-form-item
      > 

(2)data中定义数组

fileList: [],

(3)方法

// 导入GoToFile
    modeUpload: function (item) {
      this.mode = item.file;
    },
    upload: function () {
      let fd = new FormData();
      fd.append("file", this.mode);
      axios
        .post("/api/Check/importExcel", fd, {   //请求地址
          headers: {
            "Content-Type": "multipart/form-data", //请求头
          },
        })
        .then((response) => {
          console.log(response.data);
        });
    },

(三)、传递弹窗内数据和文件给后台实现导入

 

(1)页面实现

<el-form-item label="流程文件" prop="flowFile" width="50px">
          <el-upload
            action="https://jsonplaceholder.typicode.com/posts/"
            multiple
            :on-change="handleChange"
            :auto-upload="false"
            :file-list="fileList"
          >
            <el-button size="small" type="success">选择文件</el-button>
          </el-upload>
        </el-form-item>

(2)data中定义数组

fileList: [],
FlowDeploy: {
    flowCategory: "",
    flowFile: "",
    flowName: "",
   },
files: "",

(3)方法

//通过onchanne触发方法获得文件列表
    handleChange(file, fileList) {
      this.fileList = fileList;
      this.files = fileList[0].raw;
      console.log(11111, fileList[0].raw);
    },
    upload: function () {
      let formData = new FormData();
      formData.append("file", this.files);  //追加文件到请求接口
      formData.append("flowName", this.FlowDeploy.flowName);  //追加文件名称到请求接口
      formData.append("flowCategory", this.FlowDeploy.flowCategory); //追加文件类型到请求接口
      axios
        .post("/api/Flow/deploy", formData, {   //请求接口
          //   headers: {
          //     "Content-Type": "multipart/form-data",
          //   },
        })
        .then((res) => {
          console.log(res);
        });
    },

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Vue 2.x中使用Element UI来导入和导出Excel,你需要安装element-ui和file-saver插件。 首先,在Vue项目中使用npm或yarn安装Element UI和file-saver插件: ``` npm install element-ui file-saver --save ``` 然后,在Vue组件中引入所需的文件: ```javascript import { Button, Table } from 'element-ui' import XLSX from 'xlsx' import FileSaver from 'file-saver' ``` 在组件中,你需要定义导入和导出Excel的方法。下面是一个简单的示例: ```javascript methods: { // 导入Excel handleImportExcel(file) { const reader = new FileReader() reader.onload = (e) => { const data = new Uint8Array(e.target.result) const workbook = XLSX.read(data, { type: 'array' }) const worksheet = workbook.Sheets[workbook.SheetNames[0]] const jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1 }) // 处理导入Excel数据 console.log(jsonData) } reader.readAsArrayBuffer(file.raw) }, // 导出Excel handleExportExcel() { const jsonData = [ ['姓名', '年龄', '性别'], ['张三', 18, '男'], ['李四', 20, '女'] ] const worksheet = XLSX.utils.aoa_to_sheet(jsonData) const workbook = XLSX.utils.book_new() XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1') const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' }) const excelData = new Blob([excelBuffer], { type: 'application/octet-stream' }) FileSaver.saveAs(excelData, 'example.xlsx') } } ``` 最后,在模板中使用Element UI的Button和Table组件,分别绑定导入和导出Excel的方法: ```html <template> <div> <el-button type="primary" @change="handleImportExcel">导入Excel</el-button> <el-table :data="tableData"> <!-- 表格内容 --> </el-table> <el-button type="success" @click="handleExportExcel">导出Excel</el-button> </div> </template> ``` 这样,你就可以在Vue项目中使用Element UI来导入和导出Excel了。当用户选择一个Excel文件时,`handleImportExcel`方法将会被触发,并将Excel数据转换为JSON数据进行处理。而`handleExportExcel`方法则会将JSON数据转换为Excel文件并进行下载。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值