私は Wicket を使用しています (問題があるかどうかはわかりません) が、Workbook を使用して、ユーザーがダウンロードする Excel ファイルを作成しています。しかし、これを正確に行う方法がわかりません。私がしたいのは、ユーザーがボタンをクリックすると、ログが作成され、ユーザーに開く (および一時ファイルに保存する) か、自分のコンピューターに保存するように求めるプロンプトが表示されることです。その後、ファイルはサーバー側から削除されるか、ユーザーのセッションに保存され、セッションの終了時に削除される可能性があります。
誰かが私を正しい方向に向けることができますか? ファイルをセッションにまったく保存しないようにすることができれば、それは作成され、FileOutputStreamを使用してクライアントに送信されるだけです..
ここに私の現在のコードがあります:
private void excelCreator()
{
Workbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet(WorkbookUtil.createSafeSheetName("SSA User ID " + currentSSAIDSelection2.getSsaUserId()));
Iterator<AuditLogEntry> auditLogEntrys = logList.iterator();
int i = 0;
while (auditLogEntrys.hasNext())
{
final AuditLogEntry auditLogEntry = auditLogEntrys.next();
Row row = sheet.createRow(i);
row.createCell(0).setCellValue(auditLogEntry.getTimeStamp());
row.createCell(1).setCellValue(auditLogEntry.getSourceName());
row.createCell(2).setCellValue(auditLogEntry.getCategory());
row.createCell(3).setCellValue(auditLogEntry.getSsaAdmin());
row.createCell(4).setCellValue(auditLogEntry.getAction());
i++;
}
try
{
FileOutputStream output = new FileOutputStream("ssaUserIDAccess.xls");
workbook.write(output);
output.close();
}catch(Exception e)
{
e.printStackTrace();
}
}