我的eclipse中有一个动态的web项目,它带有一个包含数据的excel表并放入一个数据库中。然后,从数据库中,我创建了一个Web应用程序,供用户添加,编辑,删除和查看曾经在电子表格中的数据库中的数据。
Web应用程序获取用户创建,编辑,删除的数据,并根据用户请求创建Excel电子表格。我创建了一个编写excel电子表格的链接,但是如何将新的电子表格下载到用户计算机。
因此,如果他们单击要下载的链接,它将转到浏览器下载,例如他们正在使用的浏览器(例如在chrome中),文件将转到屏幕底部的下载栏。我一直在研究,我只是迷失了。我正在使用java:
try{
File file = new File("C:\\eclipseworkspace\\spreatdsheet.xlsx");
if(file.delete()){
System.out.println(file.getName() + " will be overwritten, created");
}else{
System.out.println(file.getName() + " does not exist. Newly created.");
}
}catch(Exception e){
e.printStackTrace();
}
FileOutputStream out = new FileOutputStream(newFile("C:\\eclipseworkspace\\spreatdsheet.xlsx"));
workbook.write(out);
out.close();
workbook.close();
System.out.println("spreadsheet .xlsx was created");
这是我的java代码的一部分,它导入Apache POI类,并将其写入eclipse中的动态Web项目目录。
我需要做什么或在哪里开始,以便将目录中的电子表格下载到用户浏览器下载中,例如chrome:// downloads / in chrome browser
答案 0 :(得分:1)
我认为您在与您在下载中看到文件的计算机相同的计算机上测试此Web应用程序。
您无法从Web应用程序在客户端计算机上编写任何内容。您提供的示例代码是在服务器文件系统上写入文件。不是客户。
您必须做的是将文件内容写入http响应。如果你正在使用servlet,那就像
public void doGet(HttpServletRequest request, HttpServletResponse response) {
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); // Instrcut the browser of what he will receive
response.getOutputStream().write(/* your excel*/);
}
这样,浏览器会将其下载到默认文件夹中(您无法更改)