在我的程序中,我有一个getrequest(javaspark),它提供了一个用java创建的excel文件供下载。
为此,我创建excel文件,将其保存在一个文件夹中,然后通过路径读取该文件。
作品。
代码-创建:
public void createPlanWorkbook() throws Exception {
...
...
do something with workbook...
workBook.write("C:\\Users\\Develope\\Desktop\\Excel.xlsm");
}
代码-请求:
get("/excelfile", ((request, response) -> {
response.header("Content-disposition", "attachment; filename=Excel.xlsm;");
File file = new File("C:\\Users\\Develope\\Desktop\\Excel.xlsm");
OutputStream outputStream = response.raw().getOutputStream();
outputStream.write(Files.readAllBytes(file.toPath()));
outputStream.flush();
return response;
}));
我想知道是否有其他方法来实现这一点。是否需要保存然后读取文件的步骤?或者有没有一种方法可以将javaobject中的文件直接放入请求中。
例如:
outputStream.write(ExcelCreaterObject().getWorkbook());
1条答案
按热度按时间iq3niunx1#
似乎您正在使用apache poi smartxls创建excel工作簿。看看它的javadoc,似乎
Workbook.write
方法接受要写入的outputstream。因此,您应该能够直接写入响应流,例如: