添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

上一篇博客👉 链接在这 ,我们使用vue3+ts实现了导入的功能,接下来,还是使用同一个组件( element-plus上传组件 )来实现导出,在上篇博客中,我们在使用这个组件的同时写了一个下载模板的功能,接下来,这篇博客,我们就帮助大家完善下载模板的功能以及实现导出的功能。✌️✌️✌️

一、效果展示


我们通过两个按钮来实现导入导出功能、具体模板的样式如下
在这里插入图片描述 具体样式,请参考上篇博客

二、模板下载

	<el-button
        class="excel-btn"
        size="small"
        type="primary"
        icon="download"
        @click="downloadTemplate('导入用户模板文件.xlsx')">
    </el-button>
//接口文件
export const downloadTemplate = fileName =>{
	return service({
    url: 'XXXX',
    method: 'post',
    params: {
      fileName: fileName,
    responseType: 'blob',
  }).then(res => {
    handleFileError(res, fileName);
  });
const handleFileError = (res, fileName) => {
  if (typeof res.data !== 'undefined') {
    if (res.data.type === 'application/json') {
      const reader = new FileReader();
      reader.onload = function () {
        const message = JSON.parse(reader.result).msg;
        ElMessage({
          showClose: true,
          message: message,
          type: 'error',
        });
      reader.readAsText(new Blob([res.data]));
  } else {
    var downloadUrl = window.URL.createObjectURL(new Blob([res]));
    var a = document.createElement('a');
    a.style.display = 'none';
    a.href = downloadUrl;
    a.download = fileName;
    var event = new MouseEvent('click');
    a.dispatchEvent(event);

以上就是下载模板的功能实现

		<el-button
            class="excel-btn"
            size="small"
            icon="download"
            @click="handleExcelExport('用户列表.xlsx')">
          </el-button>
const tableData = ref([]);
const handleExcelExport = fileName => {
  if (!fileName || typeof fileName !== 'string') {
    fileName = 'ExcelExport.xlsx';
  exportExcel(tableData.value, fileName);
 export const exportExcel = (tableData, fileName) => {
  return service({
    url: 'XXX',
    method: 'post',
    data: {
      fileName: fileName,
      infoList: tableData,
    responseType: 'blob',
  }).then(res => {
    handleFileError(res, fileName);
  });
const handleFileError = (res, fileName) => {
  if (typeof res.data !== 'undefined') {
    if (res.data.type === 'application/json') {
      const reader = new FileReader();
      reader.onload = function () {
        const message = JSON.parse(reader.result).msg;
        ElMessage({
          showClose: true,
          message: message,
          type: 'error',
        });
      reader.readAsText(new Blob([res.data]));
  } else {
    var downloadUrl = window.URL.createObjectURL(new Blob([res]));
    var a = document.createElement('a');
    a.style.display = 'none';
    a.href = downloadUrl;
    a.download = fileName;
    var event = new MouseEvent('click');
    a.dispatchEvent(event);

这样我们就实现了导出功能,同时很多时候我们可能会遇到按需导出的需求,这是,我们只需要在接口中传递相应的参数即可。

上一篇博客👉链接在这,我们使用vue3+ts实现了导入的功能,接下来,还是使用同一个组件(element-plus上传组件)来实现导出,在上篇博客中,我们在使用这个组件的同时写了一个下载模板的功能,接下来,这篇博客,我们就帮助大家完善下载模板的功能以及实现导出的功能。✌️✌️✌️我们通过两个按钮来实现导入导出功能、具体模板的样式如下具体样式,请参考上篇博客以上就是下载模板的功能实现这样我们就实现了导出功能,同时很多时候我们可能会遇到按需导出的需求,这是,我们只需要在接口中传递相应的参数即可。..
if (typeof window.navigator.msSaveBlob !== 'undefined') { window.navigator.msSaveBlob(new Blob([data],{type: 'application/vnd.ms-excel'}), fileName+'.xls') }else{ let url = window.URL.createObjectURL(new Blob([data],{type: 'appl...
<div class="gift-form"> <label><span>*</span> 上传图片:</label> <div class="file-box" data-bind="value: image"> <a href="javascript:;" class="a-upload"
废话不多说,能实现导出excel的库也不少,这次我用的是xlsx.full.min.js(git地址:https://github.com/SheetJS/sheetjs) 在utils里简单封装一下 import * as XLSX from 'xlsx' * 字符串转字符流 const s2ab = (s: string = '') => { //字符串转字符流 let buf = new ArrayBuffer(s.length) let view = new U
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
我们知道,TypeScript 是无法直接运行在浏览器中的,也无法直接运行在 nodejs 中。必须先编译成 js 以后才能运行在这些环境中。 当然这也不是绝对的,去年 nodejs 之父又新开了个坑——deno,能够直接运行 TypeScript。 之前因为觉得反正 TypeScript 最终是会编译成 js 运行在浏览器中或者 nodejs 环境中,那么是否 TypeScript 中所有的特性...
1.先安装 vant 组件库和 canvas 等相关依赖,可以使用 npm 命令进行安装。 2.在 Vue3 项目中,使用 TypeScript 进行开发,可以提高代码的可读性和可维护性。 3.使用 canvas 实现刮奖功能,可以通过在 canvas 上绘制两层图片,一层底图,一层刮开后的图,然后在刮开的区域上绘制透明效果,实现刮开的效果。 4.在组件中使用 vant 的 Swipe 方法实现手指滑动事件,监听手指滑动的距离和方向,然后在 canvas 上绘制相应的透明效果,实现用户手指滑动的效果。 5.在用户刮开一定比例的内容后,可以触发相关的奖励或者提示信息,可以使用 vant 的 Toast 或者 Dialog 组件来实现。 希望以上建议能对您有所帮助!
Error in render: “TypeError: Cannot read properties of null (reading ‘0‘)“ 报错解决方案 xiaoxiao__wenwen: 我的是一个弹窗,用了v-if之后数据可以获取了,但是弹窗又打不开了 vue3+ts实现导入excel文件功能 vue3+ts实现导入excel文件功能 y8465160: importURL这个接口怎么写 vue3+ts实现导入excel文件功能 小茹想睡觉: 这个是element-plus内置上传组件中内置的一个属性 vue3+ts实现导入excel文件功能 小茹想睡觉: 这个我只写了导入的主要功能,dialogVisible.value = false是来控制导入这个弹窗的显示的,importURL是封装的接口方法