gpt4 book ai didi

java - Servlet 中的 POI HSSF XLS 下载问题 - 新的 XLS 文件与以前的工作表一起下载

转载 作者:行者123 更新时间:2023-12-01 17:04:42 26 4
gpt4 key购买 nike

我已经创建了 Servlet,它下载 POI XLS 文件,在第一个 get/post 请求时,新文件是使用sheet0下载的。当我执行第二个请求时,正在下载两张新文件,sheet0 是上一个请求,sheet1 是新请求。同样,如果我做了 4 次请求,则有 4 张可用。

我只需要一张新请求表。

Servlet 代码:

HSSFWorkbook wb = new HSSFWorkbook();

getGet(){
String reportname = request.getParameter("repname");
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=" + reportname + ".xls");
HSSFSheet sheet = wb.createSheet();
int i=0;
while(i<10)
{
sheet.createRow(i);
HSSFCell cell = sheet.getRow(i).createCell(0);
cell.setCellValue("Test"+i);
i++;
}
ByteArrayOutputStream outByteStream = new ByteArrayOutputStream();
wb.write(outByteStream);
byte [] outArray = outByteStream.toByteArray();
OutputStream outStream = response.getOutputStream();
outStream.write(outArray);
outStream.flush();
outStream.close();
}

网页代码:

<body>
<a href="../../DownloadXLS?repname=Myreport1">One</a>
<a href="../../DownloadXLS?repname=Myreport2">two</a>
<a href="../../DownloadXLS?repname=Myreport3">three</a>
</body>

我在第 n 个请求时也只想要一张纸。

  • 我哪里错了?
  • 有任何逻辑错误吗?

最佳答案

当您启动程序时,您的 servlet 就会被实例化一次。这意味着该行

HSSFWorkbook wb = new HSSFWorkbook();

只被调用一次。因此,每次调用 getGet() 时,它都会重用 wb 变量并创建另一个工作表。

如果将 HSSFWorkbook 构造函数移至 getGet() 内,它将为每个 get 请求创建一个新的构造函数。

关于java - Servlet 中的 POI HSSF XLS 下载问题 - 新的 XLS 文件与以前的工作表一起下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26230424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com