vue下载excel文件的四种方法实例

yizhihongxing

下面是“vue下载excel文件的四种方法实例”的完整攻略:

1. 基于前端导出Excel库的实现

使用前端导出Excel库(如FileSaver.js),将数据导出为.xlsx或.csv格式的文件,使其能够被浏览器下载。

import { saveAs } from 'file-saver'; //导入FileSaver.js库

export function exportExcel() {
  const data = [
    ["id", "name", "age"],
    [1, "Tom", 20],
    [2, "Jack", 22],
    [3, "Lucy", 21]
  ];
  const ws = XLSX.utils.aoa_to_sheet(data);
  const wb = XLSX.utils.book_new();
  XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
  const filename = "data.xlsx";
  const wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'binary' });
  saveAs(new Blob([s2ab(wbout)], { type: "application/octet-stream" }), filename);
}

function s2ab(s) {
  const buf = new ArrayBuffer(s.length);
  const view = new Uint8Array(buf);
  for (let i = 0; i!==s.length; ++i) {
    view[i] = s.charCodeAt(i) & 0xFF;
  }
  return buf;
}

2. 基于后端API的实现

后端API生成Excel文件,前端将其下载。

export function exportExcel() {
  const params = {
    username: 'admin',
    password: 123456
  };
  const apiUrl = 'http://example.com/exportExcel';
  axios({
    baseURL: '',
    url: apiUrl,
    method: 'get',
    responseType: 'blob',
    params: params
  }).then(res => {
    const filename = res.headers['content-disposition'].split('filename=')[1];
    const blob = new Blob([res.data], { type: 'application/octet-stream' });
    const objectUrl = URL.createObjectURL(blob);
    const link = document.createElement('a');
    link.href = objectUrl;
    link.download = filename;
    link.click();
    URL.revokeObjectURL(objectUrl);
  });
}

以上是两个示例代码。其余两种方法分别为:前端使用table2excel库和前端使用xlsx-style库。这里就不再赘述了。

需要注意的是,导出Excel文件时,我们需要考虑的是文件的编码、文件的格式和文件名,还要注意Blob和FormData的使用。在实际开发中,我们需要根据实际情况选择最佳的实现方法。

希望这篇攻略能够给大家带来帮助,若有不清楚之处,请及时问我。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue下载excel文件的四种方法实例 - Python技术站

(1)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 每天学点Vue源码之vm.$mount挂载函数

    讲解“每天学点Vue源码之vm.$mount挂载函数”的完整攻略。 什么是vm.$mount挂载函数? vm.$mount 是 Vue 实例的 $mount() 函数,用于把Vue实例挂载到页面中的元素上。该函数有两种使用方式: 1.手动挂载 在手动挂载时,可以通过引入 Vue.js,创建 Vue 实例并手动挂载到一个DOM上。具体代码如下: <!–…

    Vue 2023年5月28日
    00
  • Vue.js每天必学之方法与事件处理器

    Vue.js每天必学之方法与事件处理器 Vue.js是一款流行的JavaScript框架,可以用于构建现代化、高效的Web应用程序。学习Vue.js需要熟悉其核心概念和常用方法,其中事件处理器是重点之一。本文将结合示例详细讲解Vue.js中的方法与事件处理器。 Vue.js中的方法 Vue.js提供了许多内置方法,用于处理组件的生命周期、渲染、数据传递等。以…

    Vue 2023年5月28日
    00
  • Vue 动态路由的实现详情

    下面就为大家详细讲解一下「Vue 动态路由的实现详情」。 什么是动态路由? Vue 路由是一种 URL 和组件之间的映射关系,并通过 URL 触发组件的展示。而动态路由则是在 URL 中传递参数,根据参数的不同动态匹配相应的路由。例如 /article/1 和 /article/2 都可以匹配到文章详情页路由,只不过参数不同。在 Vue 中,我们可以通过“路…

    Vue 2023年5月28日
    00
  • 一篇文章带你了解vue路由

    一篇文章带你了解Vue路由 什么是Vue路由 Vue路由管理的是Vue应用程序中的页面导航,它是Vue框架中的一个重要组件。在单页应用程序中,页面的切换并不会引起浏览器刷新,这一过程是通过Vue路由来完成的。 Vue路由的实现原理是在应用程序中添加观察者模式,当用户进行页面导航时,Vue路由会根据用户的请求,实时更新页面内容,并将导航历史记录添加到浏览器的历…

    Vue 2023年5月27日
    00
  • vue Tooltip提示动态换行问题

    下面是“Vue Tooltip提示动态换行问题”的完整攻略: 问题描述 在使用Vue的Tooltip组件时,会出现文本过长的情况下无法自动换行,导致Tooltip显示不全的问题。 解决方法 我们可以通过slot和v-html指令来实现Tooltip的动态换行。 使用slot指令传递文本内容到Tooltip组件中。 <template> <d…

    Vue 2023年5月27日
    00
  • vue新vue-cli3环境配置和模拟json数据的实例

    下面我将给出“Vue新vue-cli3环境配置和模拟json数据的实例”的详细攻略。 环境配置 安装Node.js 在官网下载 Node.js,选择对应系统的版本进行安装。 安装Vue CLI 3 打开命令行终端,输入命令: npm install -g @vue/cli 等待安装完成即可。 创建Vue项目 创建项目 打开命令行终端,进入要创建项目的目录,输…

    Vue 2023年5月27日
    00
  • Vue组件的计算属性和普通属性的区别说明

    Vue组件中常用的属性有两类,一类是普通属性,另一类是计算属性。两者有什么区别呢?在这里详细讲解一下。 普通属性 普通属性是指直接定义在 Vue 组件实例中的属性,它的值可以是静态的也可以是动态的。普通属性的值是可以直接访问的,一旦指定了初始值,它的值不会再发生变化,直到组件实例被销毁。 以下是一个示例代码: <template> <h1&…

    Vue 2023年5月27日
    00
  • Spring jdbc中数据库操作对象化模型的实例详解

    Spring JDBC中数据库操作对象化模型的实例详解 介绍 Spring JDBC是Spring框架提供的一种对JDBC进行封装的方式,它通过与JDBC API的松散绑定,提供了简化的数据访问操作,降低了程序员的工作难度和出错概率。在Spring JDBC中,最为重要的一个概念就是数据库操作对象化模型,也可以称之为DAO(Data Access Objec…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部