springboot下载Excel模板,Excel表损坏问题_spring cloud项目 excle编译后损坏_baidu_38558076的博客-程序员宅基地

技术标签: 问题记录  

当前开发一个Excel表模板下载功能,模板读取和模板下载都是么有问题的,但打开Excel表示提示,文件已损坏。现象如下:

 

开始以为是代码问题,但文件下载就那几行代码,应该是不会有问题的,在网上搜寻了一番,问题浮出水面,链接如下:

https://www.jianshu.com/p/9d39745f6ce6

问题根因是在maven编译时Excel模板表就已经被损坏了,下载一个已经被损坏的Excel表肯定是无法打开的。

这里就有新问题了,为啥Excel表在编译后会被损坏,这里就涉及到maven  resource标签的使用。

resource标签介绍如下链接:https://my.oschina.net/anxiaole/blog/1613348

我自己的resource配置如下:

问题就出在第二个resource配置,该配置是说将resource下除了后缀.properties,.sql,.yml意外的文件都进行过滤,进行宏值替换,替换就是filtering标签的功能。

filtering功能

 主要用来替换项目中的资源文件(*.xml、*.properties)当中的${...},比如${db.url},那么如果配置了db.url=aaa的话,在项目编译的时候,就会自动的把${db.url}替换为aaa

具体参考:https://blog.csdn.net/luckyzhoustar/article/details/50411962

由于Excel表的二进制数据存在可能被替换的数据,就导致了被损坏。

解决方案就是在编译时不进行过滤,但也要被放到resource目录下。修改配置如下:

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/baidu_38558076/article/details/86748073

智能推荐

计算机科学与导论所有笔记,2计算机科学导论笔记概述.doc-程序员宅基地

计算机科学导论1 绪论图灵模型是一个可编程的数据处理器,在图灵模型中,输出数据依赖于两方面因素的结合作用:输入数据和程序。通用图灵机是对现代计算机的首次描述,该机器只要提供了了合适的程序就能做任何运算。基于冯?诺依曼模型建造的计算机分为4个子系统:存储器、算术运算单元(ALU)、控制单元和输入/输出单元。存储器用来存储数据和程序;算术运算单元进行计算和逻辑运算;输入/输出单元负责从计算机外部接收数...

Qt/QWidgets 中使用 OpenGL,画出第一个三角形(附工程)_qt 三角形展开动画_为啥不吃肉捏的博客-程序员宅基地

在 LearnOpenGL 学习opengl的时候,示例中使用的是 glfw 这个应用框架去承载opengl,这个工具我们在工作或学习中是不必要使用的,Qt 对opengl的支持相当完善,我们将学习在Qt中使用opengl。在Qt5.4之前,Qt 使用 QGLWidget 类来承载opengl的渲染,在 QGLWidget的文档中有如下内容:This class is obsolete. It is provided to keep old source code working. We strong_qt 三角形展开动画

hdu 2024 C语言合法标识符_c语言合法标识符 hdu-程序员宅基地

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2024题目大意:c语言的合法标识符由字母、下划线、数字这三个方面组成,但开头必须是字母或下划线。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。 1 #include 2 int main (void) 3 { 4 int n,i,m,t,j;_c语言合法标识符 hdu

WebService简单案例实例_webservice简单实例-程序员宅基地

本周工作日即将结束,下周项目经理安排了一项任务可能需要使用到webservice,但本人之前尚未使用过,网上查了一些案例看了看 在此小记一篇留作日后回首也希望可以帮助到查看者朋友1、什么是WebService?WebService是一种远程调用技术,也叫XML Web Service WebService,是一种可以接收从Internet或者Internet上的其他系统中传递过来的请求,轻量级的独..._webservice简单实例

JSP上传文件到指定位置-程序员宅基地

复制上传文件,上传文件到服务器指定位置,注意,提交表单需要制定enctype的类型。具体代码如下:Servlet 代码: /** 直接取上传的File */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOExcepti

OpenCv-Python-人脸检测_opencv/opencv/sources/data/haarcascades/haarcascad-程序员宅基地

在opencv中有一个人脸检测(不是人脸识别)的xml文件,如下图所示:调用这个文件就可以进行人脸检测了,代码比较简单,如下:import cv2 as cvimport numpy as npfaces_file="D:/OpenCv/opencv 4.0.0/sources/data/haarcascades/haarcascade_frontalface_alt.xml"fac..._opencv/opencv/sources/data/haarcascades/haarcascades_frontalface_alt.xml

随便推点

Matlab--创建函数(function)_matlab创建函数-程序员宅基地

Matlab--创建函数(function)1 语法2 函数基本知识文章来源:https://ww2.mathworks.cn/help/matlab/ref/function.html1 语法function [y1,…,yN] = myfun(x1,…,xM)说明示例function [y1,…,yN] = myfun(x1,…,xM) 声明名为 myfun 的函数,该函数接受输入 x1,…,xM 并返回输出 y1,…,yN。此声明语句必须是函数的第一个可执行代码行。有效的函数名称以字母字_matlab创建函数

深入浅出 SpringBoot 2.x _ 12. SpringBoot 启动时执行任务 CommandLineRunner_他 他 = new 他()的博客-程序员宅基地

一、CommandLineRunner我们有的时候需要在 SpringBoot 启动的时候执行一些初始化的操作,但是又不想让代码乱七八糟的,这里,我们可以使用一个方法,实现 CommandLineRunner 接口~二、实例我们在之前的项目中创建一个 BootRunner 类,然后让这个类实现 CommandLineRunner 接口,并且加入注解,让 SpringBoot 扫描到写好之后,我们来启动一下项目通过日志我们可以看到这个已经在 SpringBoot 启动的时候执行了。

thrift双向通信实现时客户端报:“apache::thrift::transport::TTransportExce what(): Frame size has negative value”-程序员宅基地

公司的代码之前实现了thrift客户端,服务端单向通信,也就是在一个连接中,只能客户端调用服务端的接口,而服务端不能调用客户端的接口。需要修改为是双向通信,也就是允许服务端主动给客户端发消息,或者说调用客户端的接口。下面的代码是服务端部分代码: nbSocket.reset(new transport::TNonblockingServerSocket(port)); serverThr...

jvm学习笔记_softy文件读取 r语言-程序员宅基地

文章目录1. 什么是JVM1. 什么是JVM定义:java virtual meachine -java运行时环境(java二进制字节码的运行环境)。好处:一次编写到处运行自动内存管理,垃圾回收数组下标越界检查多态..._softy文件读取 r语言

cmd命令导入.dmp文件-程序员宅基地

导入.dmp文件之前学习过Oracle数据库的使用,但是不经常使用,都忘记好多,现在正好项目用得到,把落下的重新拾起来,以防以后会忘记,做下笔记,方便以后查看。 1、首先win+r运行,输入CMD打开命令提示窗口; 2、输入sqlplus / as sysdba 登录Oracle数据库; 3、创建新用户,最好是按照项目中的数据库链接名称来..._cmd命令导入dmp文件

1153天数据告诉你黄山云海在哪些天容易遇见_黄山云海概率查询-程序员宅基地

1153天数据告诉你黄山云海在哪些天容易遇见_黄山云海概率查询

推荐文章

热门文章

相关标签