0

这是我的代码片段

  try{

    response.setHeader("Content-Disposition", "attachment;filename=someName.xls");
    HSSFWorkbook wb = new HSSFWorkbook();
    HSSFSheet sheet = wb.createSheet("new sheet");

    HSSFRow row = sheet.createRow((short)0);

    HSSFCell cell = row.createCell((short)0);
    cell.setCellValue(1);


    row.createCell((short)1).setCellValue(1.2);
    row.createCell((short)2).setCellValue("Rajesh Kumar ");
    row.createCell((short)3).setCellValue(true);

    FileOutputStream fileOut = new FileOutputStream("C:/Excels/workbook.xls");
    wb.write(fileOut);

    fileOut.close();  
    response.getOutputStream().flush();
    } catch ( Exception ex ) {
          ex.printStackTrace();
    }

上面的代码片段在硬盘上成功创建了文件。但是,每当打开 excel 表时,它是空白的?

是什么原因 ?什么可以解决?

4

3 回答 3

2

您是否尝试过直接使用响应的流:

wb.write(response.getOutputStream());
response.getOutputStream().flush();
于 2014-07-21T09:03:23.543 回答
-1

该方法的文档没有说明刷新流。flush()fileOut你之前使用close()它。

于 2014-07-21T07:45:21.157 回答
-1

HSSFWorkbook.write(FileOutputStream fileOut) 没有向响应流写入任何内容

正确的。它写入你给它的 FileOutputStream。

如果您希望它写入响应输出流,请为其提供要写入的响应输出流。

于 2014-07-21T09:17:27.503 回答