关于使用XLSTransformer.transformXLS导出Excel表格中遇到的问题

关于使用XLSTransformer.transformXLS导出Excel表格中遇到的问题1.需求:最近拿到的一个任务,是将订单列表导出,按照订单列表导出(包括筛选条件)。背景:由于原本的订单列表查询代码太过繁重,里面夹杂的逻辑较多,再有一个是自己想尽快的熟悉公司的业务。于是决定,自己按照原本的样子重新写一个查询的逻辑。历程:原本以为这个功能会比较简单,用不了几天。原本打算用4天把这个需求搞定。结果,到今天结束用了10天。这大大的超出了我的预估。这也有开发系统故障的原因,导…

大家好,又见面了,我是你们的朋友全栈君。

1.

需求:最近拿到的一个任务,是将订单列表导出,按照订单列表导出(包括筛选条件)。

背景:由于原本的订单列表查询代码太过繁重,里面夹杂的逻辑较多,再有一个是自己想尽快的熟悉公司的业务。于是决定,自己按照原本的样子重新写一个查询的逻辑。

历程:原本以为这个功能会比较简单,用不了几天。原本打算用4天把这个需求搞定。结果,到今天结束用了10天。这大大的超出了我的预估。这也有开发系统故障的原因,导致debug需要部署到服务器上,浪费了很多的时间,效率也特别低(我枯了)。但是,这里面还是让我学习到了很多经验和知识,故而将这些看似不起眼的东西,记录下来。因为,小问题,也很费时间。

 

1.关于文件下载不能使用ajax请求的。

原因:因为response的原因,一般请求浏览器是会处理服务器输出的response,比如各种的文件流。然而,ajax请求指是将参数转换成类似于字符串的形式发送(Json什么的),请求返回的内容也是以字符串的形式返回到response里面,那么文件流从后端返回回来的时候,是不会进行自动解析的,于是乎下载是不能成功的,你只能看到response里面一堆乱码。也就是说,虽然返回的东西可以读取到,但只是读取却无法执行将文件解析出来,也就是无法调用到浏览器的下载处理机制。

2.关于表单提交数据的问题。

首先得说明一下,表单提交数据通过 application/x-www-form-urlencoded方式将数据按照key1:value1的形式提交到控制层,然后后端后自动的将数据对应,并赋值。但是,还是有例外的,是需要特别的注意的是Date数据类型,需要将接收的变量转变成String类型,或者提前将数据转换成Date格式,然后再进行赋值,当你发送请求的时候,会报400错误。

3.关于XLSTransformer.transformXLS的使用

Your InputStream was neither an OLE2 stream, nor an OOXML stream

表示的是创建workbook的时候丢失了文件类型,使用XLSTransformer.transformXLS的时候需要注意调用的是工厂方法create,如下图如果create方法识别不出文件流是哪类型的文件流时,就会抛出上述错误。源码实现如下:

关于使用XLSTransformer.transformXLS导出Excel表格中遇到的问题

 

其实,还有很多的小问题,只是本人的习惯不是很好,花了特别多的时间去解决这些小问题。为什么会遇到难么多的小问题呢?说白了就是基础不够扎实吧。一步三磕,一步三碰,前路慢行。

 

申明:本人只是单纯的记录下自己学习历程,如本文有表达错误的请各位大佬指正,给各位大佬递茶。

本人联系邮箱:CL30240@163.COM

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163881.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月24日 下午12:00
下一篇 2022年7月24日 下午12:00


相关推荐

  • n8n 全面学习指南

    n8n 全面学习指南

    2026年3月15日
    3
  • 圣诞节来了,怎能还没有圣诞树呢 快来为心爱的她送上专属的圣诞礼物叭~

    圣诞节来了,怎能还没有圣诞树呢 快来为心爱的她送上专属的圣诞礼物叭~圣诞节来了,怎能没有圣诞树!作为我的粉丝朋友们,我不允许大家还没有专属于自己的圣诞树!我要让大家收到最特别最美丽的圣诞树!

    2022年7月25日
    10
  • vue的双向绑定原理_vue中数据双向绑定的原理

    vue的双向绑定原理_vue中数据双向绑定的原理简析mvvm框架 目前angular,reat和vue都是mvvm类型的框架以vue为例 这里的vm 就是vue框架,它相当于中间枢纽的作用,连接着model 和view.当前台显示的view发生变化了,它会实时反应到viewModel上,如果有需要,viewModel 会通过ajax等方法将改变的数据传递给后台model 同时从后台model获取过来的数据,通过vm将…

    2022年10月18日
    4
  • 卸载pip包并卸载其依赖包[通俗易懂]

    卸载pip包并卸载其依赖包[通俗易懂]原创工具程序,卸载指定的pip包并递归卸载其依赖包使用方法:将以下代码保存为pip_uninst_rec.py,执行pythonpip_uninst_rec.py<pkg>即可importargparseimportosfromcollectionsimportdequeimportpip._internal.commands.showasshow_cmddefmain():parser=argparse.ArgumentParser(des

    2022年10月16日
    5
  • UVW 在C中的代码实现

    UVW 在C中的代码实现今天聊聊 UVW 平台用 C 实现平移和旋转的功能 众所周知 UVW 平台功能强大 可以实现绕任意点旋转 本来我的工作就是视觉相关 对于视觉来说 UVW 平台在图像里面仅有一个旋转中心 因为相机位置固定 我们只求出平台的旋转中心就可以做视觉引导 进入正题 Talkissimple codefirst 下面 R x1 x2 y1 为供应商提供的固定参数 和购买的平台有关 需要咨询供应商获取 简单的理解就是把 XYR 方向的分量转成 UVW 对应的轴分量 XYR 分量可以叠加 amp

    2026年3月20日
    3
  • js 有序集合_java 有序map

    js 有序集合_java 有序map原文:https://blog.csdn.net/themagickeyjianan/article/details/85608721functionSortMap(){this._map={};}SortMap.prototype.add=function(key,value){this._map[key]=value;}SortMap.pr…

    2026年2月24日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号