如何从java代码更改服务器端excel工作表生成路径

如何从java代码更改服务器端excel工作表生成路径,java,apache,apache-poi,Java,Apache,Apache Poi,我已经在servlet和java的帮助下编写了一个下载Excel工作表的代码。我的代码运行良好,并且我在客户端也得到了一个下载弹出窗口。但是,在Apache Tomcat目录中创建了一个同名的Excel文件。这也没问题(因为如果用户将来想要下载该文件,这对用户很有帮助) 但我不想将该文件存储到tomcat目录,因为我们无法授予用户对该文件夹/目录的访问权限。因此,我想知道如何将特定文件存储在服务器的特定文件夹位置,以及 允许用户在第一时间下载功能。 我正在使用3.9版本的org.apache.p

我已经在servlet和java的帮助下编写了一个下载Excel工作表的代码。我的代码运行良好,并且我在客户端也得到了一个下载弹出窗口。但是,在Apache Tomcat目录中创建了一个同名的Excel文件。这也没问题(因为如果用户将来想要下载该文件,这对用户很有帮助) 但我不想将该文件存储到tomcat目录,因为我们无法授予用户对该文件夹/目录的访问权限。因此,我想知道如何将特定文件存储在服务器的特定文件夹位置,以及 允许用户在第一时间下载功能。 我正在使用3.9版本的org.apache.poi jar

注意:此服务器端文件存储行为仅适用于XLS文件格式,不适用于XLSX文件格式,而且我在FileOutputStream中仅使用文件名而不是完整路径。

我用于XLS文件格式的代码:

HSSFSheet sheet = ExcelUtil.createWorkBook(anyexcelBean);
    response.setHeader("Content-Disposition", "inline; filename=" + excelBean.getFileName());
    response.setContentType("application/vnd.ms-excel");
    OutputStream outputStream = response.getOutputStream();
    sheet.getWorkbook().write(outputStream);
    outputStream.flush();
    outputStream.close();
XLXS格式的代码:

 protected void buildDownload(HttpServletResponse response, Workbook wb, String fileName) {
    try {
        response.setContentType("application/vnd.ms-excel");
        response.setHeader("Content-disposition", "attachment; filename=" + fileName + ".xlsx");wb.write(response.getOutputStream());
        response.getOutputStream().close();
        response.flushBuffer();
    } catch (IOException e) {
        logger.error("[WB_FILE_MGR] IOException while exporting file", e);
    }
}
提前谢谢你的帮助