Springboot与vue实现数据导出方法具体介绍

下面我将详细讲解“Springboot与vue实现数据导出方法具体介绍”的完整攻略。

一、准备工作

在开始实现前,需要准备以下环境:

  • Java环境:安装JDK1.8+
  • Maven环境:安装Maven
  • Vue环境:安装Vue.js
  • IDE:推荐使用IDEA或Eclipse

二、后端实现

  1. 在Springboot项目中添加Maven依赖

在pom.xml文件中添加以下依赖:

<!--导出excel-->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>

<!--thymeleaf-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
  1. 编写后端导出Excel的Controller

在Controller中提供一个接口,通过该接口可以实现导出Excel功能。

@GetMapping(value = "/export")
public void export(HttpServletResponse response) {
    // 设置导出文件的名称和格式
    String fileName = "导出数据.xlsx";
    response.setContentType("application/octet-stream");
    response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
    response.setHeader("Pragma", "no-cache");
    response.setHeader("Cache-Control", "no-cache");
    response.setDateHeader("Expires", 0);

    try {
        // 创建Excel文档
        XSSFWorkbook wb = new XSSFWorkbook();
        XSSFSheet sheet = wb.createSheet("Sheet1");
        XSSFRow row0 = sheet.createRow(0);
        row0.createCell(0).setCellValue("姓名");
        row0.createCell(1).setCellValue("年龄");
        // 写入Excel内容
        for (int i = 1; i < 10; i++) {
            XSSFRow row = sheet.createRow(i);
            row.createCell(0).setCellValue("张三" + i);
            row.createCell(1).setCellValue(20 + i);
        }
        // 输出Excel文件
        OutputStream os = response.getOutputStream();
        wb.write(os);
        os.flush();
        os.close();

    } catch (Exception e) {
        e.printStackTrace();
    }
}

三、前端实现

  1. 在Vue项目中安装axios

在Vue项目中可以使用axios来调用后端接口,安装方法如下:

npm install axios
  1. 编写前端导出Excel的代码

在Vue组件的methods中可以编写一个导出Excel的方法:

exportExcel() {
    axios({
        url: "/export", // 调用后端API接口
        method: "GET",
        responseType: "blob"
    }).then(response => {
        // 处理Excel文件,并进行下载
        let blob = new Blob([response.data], { type: "application/vnd.ms-excel" });
        let fileName = "导出数据.xlsx";
        if (window.navigator.msSaveOrOpenBlob) {
            navigator.msSaveBlob(blob, fileName); // 兼容IE10及以上
        } else {
            let url = window.URL.createObjectURL(blob);
            let link = document.createElement("a");
            link.href = url;
            link.download = fileName;
            link.click();
            window.URL.revokeObjectURL(url);
        }
    });
}

四、使用示例

可以在页面中添加一个按钮,在点击按钮时触发导出Excel的操作。示例代码如下:

<template>
  <div>
    <button @click="exportExcel">导出Excel</button>
  </div>
</template>

<script>
import axios from 'axios';

export default {
  methods: {
    exportExcel() {
      axios({
        url: "/export",
        method: "GET",
        responseType: "blob"
      }).then(response => {
        let blob = new Blob([response.data], { type: "application/vnd.ms-excel" });
        let fileName = "导出数据.xlsx";
        if (window.navigator.msSaveOrOpenBlob) {
          navigator.msSaveBlob(blob, fileName);
        } else {
          let url = window.URL.createObjectURL(blob);
          let link = document.createElement("a");
          link.href = url;
          link.download = fileName;
          link.click();
          window.URL.revokeObjectURL(url);
        }
      });
    }
  }
}
</script>

五、总结

通过以上步骤,我们可以实现基于Springboot和Vue.js的数据导出功能。在后端使用Apache POI来生成Excel文件,在前端使用axios来调用后端接口,并使用Blob来处理Excel文件。整个过程相对简单,适合入门级开发者学习和使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot与vue实现数据导出方法具体介绍 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Vue组件和Route的生命周期实例详解

    Vue组件和Route的生命周期是Vue.js框架中非常重要的概念。在Vue.js开发中,生命周期指 Vue实例从创建到销毁的整个过程, Vue实例在这个过程中会自动执行一些方法,这些方法被称为生命周期钩子函数,这些函数可以帮助我们在不同的阶段进行操作。 在Vue Router中,我们经常需要用到Route的生命周期。Route的生命周期指的是当一个路由被匹…

    Vue 2023年5月27日
    00
  • vue将html页面生成高清晰pdf文件的方法

    生成高清晰PDF文件需要用到一些特定的工具和技术。本文将介绍使用 Vue 将 HTML 页面生成高清晰 PDF 文件的方法。 步骤一:安装依赖 我们使用 html2pdf.js 这个开源库将 HTML 页面转换为 PDF 文件。在开始之前,我们需要先安装和引入该库。 npm install html2pdf.js –save 然后,在 Vue 组件中使用以…

    Vue 2023年5月27日
    00
  • vant使用datetime-picker组件设置maxDate和minDate的坑及解决

    关于“vant使用datetime-picker组件设置maxDate和minDate的坑及解决”的攻略,我整理了如下内容: 问题描述 在使用Vant组件库中的DateTimePicker组件时,需要设置maxDate和minDate参数控制可选范围。但是,这两个参数的设定并不是特别顺利,可能会出现一些问题,例如: 输入的日期不符合要求,仍然可以选择 只有时…

    Vue 2023年5月29日
    00
  • Vue用v-for给src属性赋值的方法

    针对“Vue用v-for给src属性赋值”的问题,可以采用以下两种方法进行实现。 方法一:使用计算属性 计算属性是 Vue 中的一个重要概念,它们可以将表达式封装为一个函数,通过计算得出最终值。使用计算属性可以将 v-for 循环中的数据动态绑定到 img 标签的 src 属性上。 <template> <div> <img v…

    Vue 2023年5月28日
    00
  • Vue2中配置Cesium全过程

    下面就详细讲解一下“Vue2中配置Cesium全过程”的完整攻略。 准备工作 在配置Vue2+ Cesium项目之前,需要先保证以下环境: 安装Node.js环境,并能够在终端使用Node和npm命令; 安装Vue CLI脚手架工具,可以运行下面的命令安装: npm install -g @vue/cli 安装完成后,可以通过运行 vue –version…

    Vue 2023年5月28日
    00
  • vue3组合API中setup、 ref、reactive的使用大全

    Vue 3 组合式 API 中 setup、ref、reactive 的使用大全 Vue 3 是 Vue.js 的最新版本,全面升级了组件系统并引入了新的组合 API,使得 Vue.js 在开发复杂应用时更加灵活可维护。其中 setup、ref、reactive 是 Vue 3 组合式 API 中最常用的三个方法,可以帮助我们快速地实现组件的数据响应式和逻辑…

    Vue 2023年5月28日
    00
  • 使用vue导出excel遇到的坑及解决

    当使用Vue来处理数据并导出Excel时,可能会遇到一些问题。以下是关于“使用Vue导出Excel遇到的坑及解决”的完整攻略,其中包含了解决这些问题的步骤和两个示例。 问题和解决方案 问题1:表格的样式丢失 当将数据导出到Excel时,原本应用的样式可能不会保留。这可能是因为Excel的格式化与HTML和CSS不同。 解决方案 可以使用 xlsx-style…

    Vue 2023年5月27日
    00
  • 浅析从面向对象思维理解Vue组件

    非常感谢您对“浅析从面向对象思维理解Vue组件”的关注,以下是完整攻略及两条示例说明。 浅析从面向对象思维理解Vue组件 1. Vue组件 在Vue中,组件被定义为可复用的代码块,包括HTML、CSS和JavaScript。组件可以被嵌套以形成更复杂的应用程序,并且Vue组件的设计思想是基于面向对象的。 2. 面向对象思维 面向对象编程(Object-Ori…

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