Java Spring AbstractExcelView-动态设置URL

Java Spring AbstractExcelView-动态设置URL,java,spring,excel,apache-poi,Java,Spring,Excel,Apache Poi,AbstractExcelView采用指向要使用的Excel工作簿(即模板)的URL 我不想在容器创建时指定这个URL,而是想动态地修改它。我试图做的是对多个Excel格式重复使用相同的视图(即,一个用于屏幕,一个用于打印)。在请求中,我有一个变量,它根据用户选择确定格式 如何基于此请求变量动态设置URL?当我的请求变量为“打印”时,我希望Excel模板使用“Excel/printable”,但当变量为“screen”时,我希望Excel模板使用“Excel/fancy”。仅仅在所需的方法bui

AbstractExcelView
采用指向要使用的Excel工作簿(即模板)的URL

我不想在容器创建时指定这个URL,而是想动态地修改它。我试图做的是对多个Excel格式重复使用相同的视图(即,一个用于屏幕,一个用于打印)。在请求中,我有一个变量,它根据用户选择确定格式

如何基于此请求变量动态设置URL?当我的请求变量为“打印”时,我希望Excel模板使用“Excel/printable”,但当变量为“screen”时,我希望Excel模板使用“Excel/fancy”。仅仅在所需的方法
buildExcelDocument()
中设置URL是不行的,因为工作簿已经在这里初始化了


我所发现的最接近于初始化它的方法是class方法
getTemplateSource(字符串url,HttpServletRequest请求)…
,但是当我调用它时,当Excel文档打开时,它是空的,我得到一个文件数据错误。

使用“getTemplateSource”时得到的确切错误(字符串url,HttpServletRequest)是“文件错误:数据可能已丢失”。这就好像当我将流切换到模板时,流已附加到空工作簿,损坏了接收到的流(此处推测)。我想我需要比在buildExcelDocument中更早地设置它,但我不知道在配置之外的什么地方…查看源代码,它是RenderMergeDoutPtModel()的最终方法初始化发生的位置。初始化与我在buildExcelDocument中尝试的相同,所以我很困惑为什么我的尝试不起作用。。。