Jakarta ee servlet中的excel电子表格

Jakarta ee servlet中的excel电子表格,jakarta-ee,servlets,Jakarta Ee,Servlets,你好 我想用servlet编程构建excel电子表格。我在excel中使用了制表符分隔的数据 response.setContentType("application/vnd.ms-excel"); PrintWriter out=response.getWriter(); out.println("\t\tFruits"); out.println("\tName\tPrice"); out.println("\tApples"); out.println("\tMangoes"); 我的

你好 我想用servlet编程构建excel电子表格。我在excel中使用了制表符分隔的数据

response.setContentType("application/vnd.ms-excel");
PrintWriter out=response.getWriter();
out.println("\t\tFruits");
out.println("\tName\tPrice");
out.println("\tApples");
out.println("\tMangoes");
我的问题是我希望标题水果在中心,我的意思是我想合并单元格。我想要从单元格B2到D2的结果输出。合并单元格时我必须更新哪些内容。
我知道,如果我们创建一个表格数据,那么它需要rowspan和colspan属性,但是对于这个,使用什么呢

如果要生成一个完整的、完全兼容的Excel文件,应使用此库并创建该文件。这是很容易做到的-只要看一看。 然后您可以使用上面的代码为用户制作一个可下载的文件,即:

public class Sample extends HttpServlet
{
   public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException
   {
    OutputStream out = null;
    try
    {
     response.setContentType("application/vnd.ms-excel");

     response.setHeader("Content-Disposition", "attachment; filename=sampleName.xls");

     // Put your POI code here

    } catch (Exception e) {
     throw new ServletException("Exception in Excel Sample Servlet", e);
    } finally {
     if (out != null)
      out.close();
    }
   }
  }
这里有一个完整的servlet示例

如果可以是XLSX文件,也可以使用

但是,如果您仍然想使用CSV/TSV文件,您仍然可以轻松地这样做

byte[] csv = dao.getYourContentHere();
response.setContentType("text/csv");
response.setHeader("Content-Disposition", "attachment; filename=data.csv"));
reponse.setContentLength(csv.length);
ServletOutputStream out = response.getOutputStream();
out.write(csv);
可以看出,上面的
内容配置
部分有所不同


顺便说一句,如果你想生成CSV数据,你可以使用一个很棒的小型库,从中可以用Excel完全理解的方式格式化CSV/TSV文件。

如果你想生成一个完整的、完全兼容的Excel文件,你应该使用这个库来创建该文件。这是很容易做到的-只要看一看。 然后您可以使用上面的代码为用户制作一个可下载的文件,即:

public class Sample extends HttpServlet
{
   public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException
   {
    OutputStream out = null;
    try
    {
     response.setContentType("application/vnd.ms-excel");

     response.setHeader("Content-Disposition", "attachment; filename=sampleName.xls");

     // Put your POI code here

    } catch (Exception e) {
     throw new ServletException("Exception in Excel Sample Servlet", e);
    } finally {
     if (out != null)
      out.close();
    }
   }
  }
这里有一个完整的servlet示例

如果可以是XLSX文件,也可以使用

但是,如果您仍然想使用CSV/TSV文件,您仍然可以轻松地这样做

byte[] csv = dao.getYourContentHere();
response.setContentType("text/csv");
response.setHeader("Content-Disposition", "attachment; filename=data.csv"));
reponse.setContentLength(csv.length);
ServletOutputStream out = response.getOutputStream();
out.write(csv);
可以看出,上面的
内容配置
部分有所不同


顺便说一句,如果想要生成CSV数据,可以使用一个很棒的小型库,从中可以以Excel完全理解的方式格式化CSV/TSV文件。

谢谢,我只需要看一下您的解释。.如果可以使用我上面提到的选项卡分隔数据修改代码,请让我知道。.要做什么更改可能,但是您将创建一个TSV/CSV文件,而不是Excel文件。还有一个区别,因为CSV文件是由Excel导入的,而不是加载的。我将编辑答案以包括该选项…谢谢,我将只通过您的解释。如果可以使用我上面提到的选项卡分隔数据修改代码,请让我知道。要做什么更改?这是可能的,但是您将创建TSV/CSV文件,而不是Excel文件。还有一个区别,因为CSV文件是由Excel导入的,而不是加载的。我将编辑答案以包含该选项。。。