Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 创建excel工作表并插入数据库中的数据_Jsp - Fatal编程技术网

Jsp 创建excel工作表并插入数据库中的数据

Jsp 创建excel工作表并插入数据库中的数据,jsp,Jsp,您好,这是我的jsp代码,我正在从html页面检索值,并在切换案例中检查复选框值。我正在尝试使用jsp创建excel工作表,并将数据库中的记录插入excel。但当我执行上述代码时,它会以白色空白excel文件的形式输出。即使是excel工作表也不会显示 我现在该怎么办 请帮帮我 请 塔克斯 Kajal您是否将HSSF工作手册写入响应的输出流 response.setContentType("application/vnd.openxmlformats-officedocument.spreads

您好,这是我的jsp代码,我正在从html页面检索值,并在切换案例中检查复选框值。我正在尝试使用jsp创建excel工作表,并将数据库中的记录插入excel。但当我执行上述代码时,它会以白色空白excel文件的形式输出。即使是excel工作表也不会显示 我现在该怎么办 请帮帮我 请 塔克斯
Kajal

您是否将HSSF工作手册写入响应的输出流

response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
"); response.setHeader("Content-Disposition",
"attachment;filename=\"j.xls\"  ");


//int ch=Integer.parseInt(request.getParameter("id"));
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String
url = "jdbc:sqlserver://"; Connection con =
DriverManager.getConnection(url,"sa","sql1423#3"); Statement stmt =
con.createStatement();

HSSFWorkbook hwb=new HSSFWorkbook(); HSSFSheet sheet = 
hwb.createSheet("new sheet"); HSSFSheet sheet1 =  hwb.createSheet("new
sheet1");

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

String select[] = request.getParameterValues("id");  if (select != null && select.length != 0) {

    for (int i = 0; i < select.length; i++)     {   //out.println(select[i]);
        int ch=Integer.parseInt(select[i]);




        switch(ch)                  {
            case 1 :            rowhead.createCell((short) 0).setCellValue("INDEX_FLG");            ResultSet
rs=stmt.executeQuery("select INDEX_FLG from FFIX");

              while(rs.next())
              {

                  rowhead.createCell((short) 0).setCellValue(rs.getString("INDEX_FLG"));
                 //out.println(rs.getString("INDEX_FLG")); 


              }

              rs.close();
                 break;

         case 2 : 

            rowhead.createCell((short) 0).setCellValue("SYMBOL");           ResultSet rsS=stmt.executeQuery("select SYMBOL from FFIX");;

          while(rsS.next())
          {
              rowhead.createCell((short) 0).setCellValue(rsS.getString("SYMBOL"));
           } 

              rsS.close();
                break;

         case 3 : 
            rowhead.createCell((short) 0).setCellValue("SERIES");
            ResultSet rsSE=stmt.executeQuery("select SERIES from FFIX");
            while(rsSE.next())          {
                rowhead.createCell((short) 0).setCellValue(rsSE.getString("SERIES"));           
            }
         rsSE.close();
         break;
        }
    }

是的,我在开关盒的每个while中都写了,但它只打印了一条记录……你对此有什么想法吗?ResultSet rs=stmt.executeQueryselect INDEX_FLG from FFIX;rowhead.createCellshort i.setCellValueINDEX_FLG;whilers.next{rowhead.createCellshort i.setCellValuers.getStringINDEX_FLG;hwb.WriterResponse.getOutputStream;}我是这样写的……但它在excel工作表中只打印一条记录您应该只将工作簿写入一次响应hwb.WriterResponse.getOutputStream。您应该在方法结束时完成此操作,当您完成处理结果集和更新工作簿时。谢谢,但我已更改了代码,现在它工作正常,这很好。我知道你是新来的,所以你可能不知道这条线不仅仅是关于你的。你看,如果你向这样的人寻求帮助,你应该给社区一些回报。因此,我恳请您发布代码的工作版本,作为对这个问题的补充回答。否则,这篇文章对其他可能偶然发现它的人来说将是完全无用的。塔克斯
hwb.write(response.getOutputStream())