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

yizhihongxing

下面我将详细讲解“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写一个todoList事件备忘录经典小案例

    讲解“使用Vue写一个todoList事件备忘录经典小案例”的完整攻略。 1. 准备工作 在开始实践之前,需要做一些准备工作: 安装Vue Vue可以通过CDN或者npm安装,这里介绍使用npm安装的方式: npm install vue 创建Vue的实例 在html文件中引入Vue,然后创建一个Vue实例,用于绑定页面元素和数据: <!DOCTYPE…

    Vue 2023年5月29日
    00
  • elementui导出数据为xlsx、excel表格

    ElementUI是一款基于Vue.js的组件库,提供了丰富的UI组件,其中也包含了导出Excel表格的功能。下面是ElementUI导出数据为xlsx、excel表格的详细攻略: 第一步:安装依赖 首先,在项目中导出Excel表格需要安装以下依赖: npm install -S file-saver xlsx 其中,file-saver用于文件下载,xls…

    Vue 2023年5月27日
    00
  • vue打包后生成一个配置文件可以修改IP

    要修改Vue打包后生成的IP地址,需要进行以下步骤: 找到Vue项目的根目录下的config文件夹,其中包含了打包的配置文件,比如’prod.env.js’和’index.js’。 在’prod.env.js’中添加以下代码:API_ROOT: ‘”http://your_server_ip_address/api”‘,其中your_server_ip_ad…

    Vue 2023年5月28日
    00
  • vue + element-ui实现简洁的导入导出功能

    Vue是一种灵活的前端框架,Element UI是一个基于Vue.js 2.0的桌面端组件库,它能够很好地展现你的数据和交互。下面我将详细讲解如何使用Vue和Element UI实现简洁的导入导出功能。 步骤一:安装依赖 首先,你需要安装Vue和Element UI,打开终端,输入以下命令: npm install vue npm install eleme…

    Vue 2023年5月27日
    00
  • JavaScript设计模式之原型模式分析【ES5与ES6】

    JavaScript设计模式之原型模式分析【ES5与ES6】 什么是原型模式? 在JavaScript中,每个对象都有原型(prototype)属性。原型是一个对象,其他对象可以通过它来继承属性和方法。原型模式就是通过原型来创建新对象的模式。 原型模式是一种创建型设计模式,它允许我们通过克隆现有对象的方式来创建新对象,而不是通过使用构造函数创建。 实现原型模…

    Vue 2023年5月28日
    00
  • vue 页面回退mounted函数不执行的解决方案

    1.问题描述 当 Vue 页面回退时,如果使用了 keep-alive 组件进行缓存,再次进入该页面时,mounted 钩子函数不会执行。这是因为使用了 keep-alive 缓存组件,导致页面并未被销毁,因此再次进入页面时不会触发 mounted 钩子函数。 2.解决方案 方法一:使用 activated 钩子函数 当使用缓存组件时,在页面再次进入前会触发…

    Vue 2023年5月28日
    00
  • vue2.0实现列表数据增加和删除

    下面是 “Vue2.0 实现列表数据增加和删除” 的完整攻略。 一、vue2.0实现列表数据增加 1. 创建一个 Vue 实例 首先,创建一个 Vue 实例,本文将使用 Vue CLI 来方便构建项目。可以使用如下命令创建基于webpack-simple模板的Vue项目: vue init webpack-simple vue-list 2. 编写组件以及绑…

    Vue 2023年5月29日
    00
  • vue+element-ui前端使用print-js实现打印功能(可自定义样式)

    让我来为你详细讲解“vue+element-ui前端使用print-js实现打印功能(可自定义样式)”的完整攻略。 简介 在前端开发中,有时需要提供页面的打印功能。本篇攻略将介绍如何使用print-js插件实现可自定义样式的打印功能,使用的前端框架是Vue,UI组件库是Element-UI。 安装依赖 首先,我们需要安装print-js依赖: npm ins…

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