SpringBoot下载Excel模板功能

目录

一、前端只需要填写一个a标签调用一下后端接口即可

二、后端

2.1 准备一个excel模板 ,将其复制到resource目录下的templates文件夹下

2.2 接着复制下列代码即可

三、运行效果


一、前端只需要填写一个a标签调用一下后端接口即可

1.1 先代理一下防止跨域

export default defineConfig({
  plugins: [vue()],
  server: {
    port: 5000,
    proxy: {
      "/api": { target: "http://localhost:8080/", changeOrigin: true },
    },
  },

});

2.2 调用后端接口

二、后端

2.1 准备一个excel模板 ,将其复制到resource目录下的templates文件夹下

2.2 接着复制下列代码即可

package com.beiyou.controller;


import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.InputStream;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

@RestController
@RequestMapping("/api")
public class DownloadController {

    @GetMapping("/downloadExcelTemplate")
    public ResponseEntity<InputStreamResource> downloadExcelTemplate() throws Exception {
        // 模板文件路径
        String templateFilePath = "/templates/123.xls";
        
        // 获取资源文件输入流
        ClassPathResource resource = new ClassPathResource(templateFilePath);
        InputStream inputStream = resource.getInputStream();

        // 设置响应头,包括文件名和MIME类型
        String filename = "模板.xlsx";
        String encodedFilename = URLEncoder.encode(filename, StandardCharsets.UTF_8.toString());
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        headers.setContentDispositionFormData("attachment", encodedFilename);

        // 返回包含文件流的ResponseEntity对象
        return ResponseEntity.ok()
                .headers(headers)
                .body(new InputStreamResource(inputStream));
    }
}

三、运行效果

相关推荐

  1. 【Golang】实现 Excel 文件下载功能

    2024-04-28 00:36:01       37 阅读
  2. SAP ABAP EXCEL 下载模板并导入

    2024-04-28 00:36:01       65 阅读

最近更新

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

    2024-04-28 00:36:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-28 00:36:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-28 00:36:01       82 阅读
  4. Python语言-面向对象

    2024-04-28 00:36:01       91 阅读

热门阅读

  1. 【运维】Gitlab备份

    2024-04-28 00:36:01       34 阅读
  2. 探究C++20协程(4)——协程中的调度器

    2024-04-28 00:36:01       24 阅读
  3. 清华大学 【战略管理的逻辑】全6讲笔记

    2024-04-28 00:36:01       24 阅读
  4. 【MySQL】数据库概述

    2024-04-28 00:36:01       32 阅读
  5. 【MySQL】基础知识

    2024-04-28 00:36:01       28 阅读
  6. k8s部署grafana

    2024-04-28 00:36:01       27 阅读
  7. Swift 中的条件语句:if 和 else

    2024-04-28 00:36:01       27 阅读
  8. 优雅实现uniapp返回上一页传参

    2024-04-28 00:36:01       32 阅读
  9. 通过idea插件一键将jar包发布到阿里云服务器部署

    2024-04-28 00:36:01       26 阅读
  10. 要搭建基于Python、Django和Oracle的框架怎么搭

    2024-04-28 00:36:01       29 阅读
  11. springboot校园在线拍卖系统

    2024-04-28 00:36:01       31 阅读
  12. NEFU算法设计与分析实验4

    2024-04-28 00:36:01       30 阅读