【问题标题】:How to save the generated table response in a excel file in jsp如何将生成的表响应保存在jsp的excel文件中
【发布时间】:2015-09-04 01:01:25
【问题描述】:

我在数据库中有一些数据,通过一些 JSP 和 servlet,我制作了这样一个具有接口的 Web 应用程序。通过接口,我可以选择数据库中表的列名并在下一个文本框中键入关键字,然后可以搜索那些行包含该特定列中的关键字。我使用引导表以表格格式查看输出。 我希望如果用户单击表格底部的保存按钮,则会打开一个弹出窗口,他可以输入名称并选择位置并保存文件。

所有其他事情,例如获取数据和显示都没有问题。

【问题讨论】:

    标签: mysql jsp servlets file-upload web


    【解决方案1】:

    您可以使用 HSSFRow 将您的 jsp 列表解析为 java 中的 excel 表

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

    然后你需要为excel表格创建一个标题

    //对于标题

    HSSFRow rowhead=   sheet.createRow((short)0);
            rowhead.createCell(0).setCellValue("ID");
            rowhead.createCell(1).setCellValue("NAME");
    

    现在您将根据列表大小填充列中的数据。

    //对于列表的其余部分

        int rownum = 1;
        for (YourObject obj : listOfObjects) {
            Row row = sheet.createRow(rownum++); 
            row.createCell(0).setCellValue(obj.getID());
            row.createCell(1).setCellValue(obj.getName());
        }
    

    将数据写入 xls 文件

     try {    
    
                     ByteArrayOutputStream outByteStream = new ByteArrayOutputStream();
    
                     workbook.write(outByteStream);
    
                     byte[] outArray = outByteStream.toByteArray();
    
                     response.setContentType("application/vnd.ms-excel");
    
                     response.setContentLength(outArray.length);
    
                     response.setHeader("Expires:", "0"); // eliminates browser caching
    
                     response.setHeader("Pragma","cache");
    
                     response.setHeader("Cache-Control","private");
    
                     response.setHeader("Content-Disposition", "attachment; filename=sample.xls");
    
                     OutputStream outStream = response.getOutputStream();
    
                     outStream.write(outArray);
    
                     outStream.flush();
    
                     outStream.close();
    
                     System.out.println("Excel written successfully..");
        } catch (FileNotFoundException e) {   
                     e.printStackTrace();
        }catch (IOException e)
        {    
                     e.printStackTrace();
        }
    

    希望对你有帮助!!!

    【讨论】:

    • 感谢您的帮助。我是这个概念的新手,我想知道在哪里保存此代码(我的意思是在 jsp 中),但确实需要将这些上传按钮和保存按钮放在一个表单中在行动中,我必须编写这个特定的 jsp 或其他东西???
    • 请解释一下,一旦我保证我会努力提高我的知识并进一步分享。我需要将以上代码放在单个 jsp 或 servlet 中吗?
    • 以及 xls 文件的保存位置
    • 是的,将这些按钮包含在具有操作名称的表单中是一个好习惯。然后你可以用你可以编写这个逻辑的动作类映射那个动作......否则你可以在你的jsp中编写这个代码,如果你知道脚本,即在jsp中编写java代码
    • 这里的问题是,一旦生成响应,我想将表格格式的结果保存到 excel 文件中。如果我们必须并行保存数据,而它正在生成我会用jsp在那里编写代码,但我希望一旦显示整个结果,我们就可以保存它
    猜你喜欢
    • 1970-01-01
    • 2011-10-27
    • 2020-08-22
    • 1970-01-01
    • 2016-09-07
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多