0

ユーザーが選択したパスにExcelでデータをダウンロードしたいのですが、jspでExportToExcelボタンを指定したので、以下のシナリオが必要です

ユーザーがExportToExcelボタンをクリックすると、ポップアップウィンドウとして保存する必要があり、そこからサーブレットを呼び出し、ポップアップウィンドウから選択されたサーブレットでファイル保存パスを受け取る必要があり、最後にデータをExcelシートに書き込みたいユーザーが選択したパスに保存します。保存したら、別のjspページでユーザーに1つのメッセージを表示したいと思います。

4

1 に答える 1

2

ファイルの保存パスに関する情報は、サーバーには送信されません。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.
于 2013-03-16T15:42:25.703 に答える