vue3+elementPlus项目支持设置默认附件

背景

我们项目中的需求经常会有跳转从一个页面跳转到另一个页面的情况,比如a页面跳转到b页面,到b页面之后将a页面的数据带过来,或者回显数据。但是能够把a页面的数据进行加上,然后当作b页面的默认附件吗?答案是肯定的。

一. 用到的技术栈

下面演示的项目是:vue3+elementPlus
上传附件的组件为el-upload
第三方库:xlsx

二. 代码解析

1. 自动下载附件

import { saveAs } from 'file-saver';  
import XLSX from 'xlsx';  
  
// 假设你已经有了一个数据数组data  
const data = [  
  // ...你的数据  
];  
  
// 创建Excel工作簿和工作表  
const workbook = XLSX.utils.book_new();  
const worksheet = XLSX.utils.json_to_sheet(data);  
  
// 将工作表添加到工作簿  
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');  
  
// 将工作簿转换为二进制字符串  
const wbout = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });  
  
// 将二进制字符串转换为Blob对象  
const blob = new Blob([wbout], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });  
  
// 将Blob对象转换为File对象  
const file = new File([blob], 'data.xlsx', { type: blob.type });  
  
// 现在你可以使用file对象了,比如保存文件或上传到服务器  
saveAs(file, 'data.xlsx'); // 使用file-saver保存文件  
  
// 如果你需要上传这个File对象,你可以将它传递给相应的上传函数或API  
// uploadFunction(file); // 假设你有一个uploadFunction用于处理文件上传

saveAs(file, ‘data.xlsx’)为下载excel的功能,

  1. 下载默认附件
const generateExcel = async () => {
  // 假设你已经有了一个数据数组data  
const data = [  
  // ...你的数据  
];  

// 附件
const attatch = ref([])
  
// 创建Excel工作簿和工作表  
const workbook = XLSX.utils.book_new();  
const worksheet = XLSX.utils.json_to_sheet(data);  
  
// 将工作表添加到工作簿  
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');  
  
// 将工作簿转换为二进制字符串  
const wbout = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });  
  
// 将二进制字符串转换为Blob对象  
const blob = new Blob([wbout], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });  
  
// 将Blob对象转换为File对象  
const file = new File([blob], 'data.xlsx', { type: blob.type });  
 // 设置默认值
attatch.value =[file]
}

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-13 11:24:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-13 11:24:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-13 11:24:05       82 阅读
  4. Python语言-面向对象

    2024-03-13 11:24:05       91 阅读

热门阅读

  1. Kotlin Retrofit 网络请求

    2024-03-13 11:24:05       40 阅读
  2. Unity 地图数据生成

    2024-03-13 11:24:05       39 阅读
  3. Spring Boot- Validation

    2024-03-13 11:24:05       34 阅读
  4. LeetCode题练习与总结:搜索旋转排序数组

    2024-03-13 11:24:05       39 阅读
  5. 【leetcode热题】反转字符串中的单词

    2024-03-13 11:24:05       46 阅读
  6. 焦点调制网络

    2024-03-13 11:24:05       42 阅读
  7. 蓝桥杯历年真题省赛之 2016年 第七届 生日蜡烛

    2024-03-13 11:24:05       31 阅读
  8. Kafka吞吐量高的原因

    2024-03-13 11:24:05       35 阅读
  9. 阿里云国际修改域名绑定的DDoS高防服务器

    2024-03-13 11:24:05       40 阅读
  10. RUST 每日一省:迭代器1

    2024-03-13 11:24:05       42 阅读
  11. 【Rust日报】Ascent:在 Rust 中嵌入的逻辑编程语言

    2024-03-13 11:24:05       36 阅读