在我的程序中,我有一个getRequest(JavaSpark),可以为我提供一个用Java创建的Excel文件供下载。
为此,我创建了Excel文件,将其保存在文件夹中,然后通过路径读取文件。
作品。
代码-ExcelCreation:
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());
似乎您正在使用Apache POI SmartXls创建Excel工作簿。查看其Javadoc,似乎该Workbook.write
方法接受要写入的输出流。
因此,您应该能够直接写入响应流,例如:
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();
// do some stuff with the workbook
workbook.write(outputStream);
return response;
}));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句