vue 下载excel模板遇到的问题(文件不存在 文件已损坏)

vue

进入新的公司,分到了一个小需求,很简单,就是在管理系统的列表页面增加批量导入和导出的功能,不过居然让我连前端一起干,我@#@%#@!!,没办法只能干,后端接口很简单,用poi或jxl读取或者生成excel文件就行,前端就很费劲,之前干前端还是5年前,jsp+js的方式。而现在都是vue+element。遇到了一些问题。记录下来,如果还有谁遇到了,希望能有帮助

一、文件不存在

  模板下载,导入前要下载模板,就琢磨这把模板excel文件当成一个静态资源直接放到项目中下载。基于原来html的想法,我直接在下载模板的地方加一个a标签。

<a href="./XXX/XXX/模板.xlxs" >下载模板</a>

    然后发现点击后不会触发下载,而是跳到莫名奇妙的首页,后来发现vue里a标签正确用法如下:要有download属性

<a href="./XXX/XXX/模板.xlxs" download="模板.xlxs">下载模板</a>

  能够触发浏览器的下载动作了,不过发现出现“下载出错,文件不存在”的错误,经过百度,vue工程下载静态资源应该放在/public/static/..下面,并且路径要写public下面index.html的相对路径

<a href="./static/file/话术导入模板.xlsx" download="话术导入模板.xlsx">模板下载</a>

二、文件已损坏

这样在前后单分别启动(vue打包前)可以正常下载,不过把vue工程执行打包命令(npm run build:prod)打包到springboot jar包的/resource/后,启动jar包项目,访问,下载后,打开excel,出现文件已损坏的问题,又在网上查询,这块网上说的比较少,不过还是找到了解决办法,是因为,mven在编译resource下面的文件会进行相关处理,比如变量替换,破坏了excel文件。解决办法如下,修改pom文件。

 到此,打包后也能正常下载了,问题解决。

以上是 vue 下载excel模板遇到的问题(文件不存在 文件已损坏) 的全部内容, 来源链接: utcz.com/z/379427.html

回到顶部