我想将excel中的数据下载到用户选择的路径,在jsp中我给了ExportToExcel按钮,所以我想要下面的场景
当用户单击 ExportToExcel 按钮然后保存为弹出窗口时,我想从那里调用 servlet 并需要在 servlet 中接收从弹出窗口中选择的文件保存路径,然后最后我想将我的数据写入 excel 表和保存到用户选择的路径。保存后,我想在另一个 jsp 页面中向用户显示一条消息。
有关文件保存路径的信息不会以任何方式发送到服务器。另外,当客户端在物理上不同的机器上运行时,您显然无法new File(savedPath)
在服务器中使用,例如在非开发环境中会发生的情况。所以你的整个要求没有任何意义。您应该将文件直接写入触发另存为对话框的同一 HTTP 响应的 HTTP 响应正文。
目前尚不清楚您使用什么来生成 Excel 文件,但如果它是例如Apache POI,那么它看起来像这样:
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);
cell.setCellValue("cell value");
response.setContentType("application/vnd.ms-excel"); // Tell browser what content type the response body represents, so that it can associate it with MS Excel, if necessary.
response.setHeader("Content-Disposition", "attachment; filename=name.xls"); // Force "Save As" dialogue.
workbook.write(response.getOutputStream()); // Write created Excel sheet to response. This will be saved in the location specified by the user.