如何下载从数据库中获取结果集的excel表

时间:2018-06-18 09:12:37

标签: java mysql excel jsp servlets

我使用Apache POI库并使用查询从数据库生成excel表来获取医生列表及其详细信息。我必须转到下面提到的位置" C:\ Users \ Mohan \ Downloads \ data.xls"检查我的excel文件。 但是当我点击jsp中的按钮时,如何在浏览器中下载它。

protected void doGet(.......)抛出异常{

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

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

    rowhead.createCell((short) 0).setCellValue("Doctor ID");
    rowhead.createCell((short) 1).setCellValue("Name");
    rowhead.createCell((short) 2).setCellValue("UserName");
    rowhead.createCell((short) 3).setCellValue("Contact No");
    rowhead.createCell((short) 4).setCellValue("E-mail");

    DoctorDao dao = new DoctorDao();
    ResultSet res = dao.getdoctors();

    int i = 1;
    try {
        while(res.next()){
            HSSFRow row=   sheet.createRow((short)i);
            row.createCell((short)0).setCellValue(Integer.toString(res.getInt(1)));
            row.createCell((short) 1).setCellValue(res.getString(2));
            row.createCell((short) 2).setCellValue(res.getString(3));
            row.createCell((short) 3).setCellValue(res.getString(4));
            row.createCell((short) 4).setCellValue(res.getString(5));
            i++;
            }
        String filename="C:\\Users\\Mohan\\Downloads\\data.xls";
        FileOutputStream fileOut =  new FileOutputStream(filename);
        hwb.write(fileOut);
        fileOut.close();
        System.out.println("Your excel file has been generated!");

    } catch (Exception e) {

        e.printStackTrace();
    }
}

1 个答案:

答案 0 :(得分:0)

我认为这是一个简单的重定向:response.sendRedirect("URL TO THE EXCEL SHEET")
顺便说一下,这是一个简单的下载,有更好的方法,但这一个是好的,它的工作原理。如果使用此方法,则文件需要位于/ WebContent文件夹中,或者如果在运行时在/ webapps / yourappsname /文件夹中生成ot

在这种情况下,文件位于/var/share/tomcat/webapps/assets/list.xls,网址为assets/list.xls

另一种选择是这样的:

FileInputStream in = new FileInputStream(new File("C:\\FILEURL\\whatever\\whatever.xls"));
while(in.avainable()>0){
     getWriter().write(in.read());
}

但要注意这一点并阅读这篇文章:Java : download file outside server context