我正在使用 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();
}
}