【问题标题】:Download Excel from Servlet从 Servlet 下载 Excel
【发布时间】:2014-02-05 01:07:41
【问题描述】:

我有以下 servlet,我使用“GET”方法下载我使用 apache POI 生成的 Excel 文件。

response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=reg_user.xls");

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Registered Users");

// create workbook

ServletOutputStream out = response.getOutputStream();
workbook.write(out); 
out.flush();
out.close();

然后我对这个 servlet 进行了 ajax 调用。但是 Excel 文件没有下载。当我查看控制台时,它有一些奇怪的字符以及来自假定的 excel 文件的可能数据

������������� �������� ������������ �������� ������ ������ �������� ������������ �������� ������������ ���� ������������������������������������������������������ ���������������������������������������������������� ����������������������������������������������������� �� ���������������������� ���������������������� ������ ������ �������� ������������ ����+���� ������������ ���� )���� ������������ ����,���� ������������ ����*��� ������ ������ ���� ��� �������������������������������������� ��`������������注册用户��������������������#��������用户 ID��姓名 ��电子邮件地址 ��手机号码 ��出生日期��性别��地区��100005085485545

我使用相同的方法使用以下代码将文件写入我的计算机并且它有效。

FileOutputStream out = new FileOutputStream(new File("C:\\new.xls"));
workbook.write(out);
out.close();

但我想要的是自动下载文件,但由于某种原因无法正常工作。

课程是什么?我把响应内容类型设置得太正确了。

【问题讨论】:

    标签: java excel servlets download content-type


    【解决方案1】:

    当 ajax 调用完成后,浏览器不显示下载弹出窗口,您应该使用从 ajax 调用收到的标题信息和字节再次创建文件

    【讨论】:

      【解决方案2】:

      好的,实际上问题是我正在进行 ajax 调用。当我使用 <a href="reporting.do?type=USERS">User Report</a> 直接调用 servlet 时,它运行良好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-30
        相关资源
        最近更新 更多