java - Servlet - 将响应导出到 Excel 文件

标签 java excel jsp servlets response

我无法将响应从 servlet 导出到 excel 文件。请看下面的代码:

测试.java:

 @Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html");
out = response.getWriter();
out.print("<form name=\"test\" method=\"post\" action=\"Export\">");
out.print("<table border=\"1\" cellpadding=\"3\" bordercolor='black'");
out.print("<tr>");
out.print("<td>1</td>");
out.print("<td>hello how are you?</td>");
out.print("</tr>");
out.print("</table>");
out.print("<td><input type=\"submit\" name =\"submit1\" value=\"Export To Excel\"></td>");
out.print("</form>");

单击提交按钮会生成一个不包含任何值的 Excel 工作表。请参阅单击提交按钮时调用的 Export.java

导出.java

public class Export extends HttpServlet {

@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    String submit1 = request.getParameter("submit1");
   if (submit1 != null) {
        response.setContentType("application/vnd.ms-excel");
        response.setHeader("Content-Disposition", "attachment; filename=users.xls");
    }
}
}

此外,据观察,如果我在 Test.java 中编写以下代码,它可以正常工作,并且 excel 工作表确实包含表值。

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

单击提交按钮时,是否有任何方法可以将 Export.java 的输出转发到 Test.java

最佳答案

终于找到解决办法了!我将所有 out.print() 内容存储到 StringBuffer 中。然后使用 getServletContext().setAttribute("test", Buffer); 我将整个内容转发到另一个 servlet 并使用 StringBuffer data = (StringBuffer) getServletContext 从另一个 servlet 检索数据().getAttribute("测试");.

最后,

response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=sample.xls");
response.getWriter().write(data.toString());`

完成了任务。

关于java - Servlet - 将响应导出到 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16193970/

相关文章:

jsp - 如何从另一个 servlet 检索 session 属性?

java - 为什么可以在 try-with-resources 范围之外使用 Closed 对象?

java - 请求通过 https 加密?

java - 哪里可以上传Tomcat可以访问的文件?

java - 自动从一个 JSP 页面重定向到另一个

Java-EE 重定向到自定义错误页面

java - localhost api 请求的 Http 失败响应 : 0 Unknown Error - Angular

excel - 运行时错误 '1004' : Method 'Range' of object'_Global' failed

arrays - 如何将变量值舍入到数组中的下一个最低数字?

java - 如何使用 Apache POI 使用自定义列表中的 XDDFDataSource 值创建饼图和条形图