• java 导出excel (两种方式:1,保存到服务器中,2.不保存服务器中,直接转流方式。);第二种方式优先考虑 提示:使用Ajax请求流下载失效,使用表单提交流下载正常,原因未知


    /*
    * 将数据放入excel表中
    */
    //1.创建一个excel对象
    HSSFWorkbook excel = new HSSFWorkbook();
    //2.样式
    //单元格样式
    HSSFCellStyle cellStyle = excel.createCellStyle();
    HSSFCellStyle fontStyle = excel.createCellStyle();
    cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//创建一个居中样式
    //字体样式
    HSSFFont font = excel.createFont();
    font.setColor(HSSFColor.RED.index);
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
    fontStyle.setFont(font);
    fontStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//创建一个居中样式
    //2.在excel中添加一个sheet
    HSSFSheet sheet = excel.createSheet("帮扶记录");
    //3.在sheet中添加第0行:标题(xx的帮扶记录情况)
    HSSFRow row = sheet.createRow(0);
    HSSFCell cell = row.createCell(0);
    cell.setCellValue(rkxx.getStr("XM")+"的帮扶记录情况");
    cell.setCellStyle(fontStyle);
    sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 6));//合并7列成一列,放大标题(起始行,截至行,起始列, 截至列)
    //4.创建单元格,设置表头,以及表头样式
    //创建第二行,开始写表头
    row = sheet.createRow(1);
    //第一列
    cell = row.createCell(0);
    cell.setCellValue("序号");
    cell.setCellStyle(cellStyle);
    //第二列
    cell = row.createCell(1);
    cell.setCellValue("帮扶人员");
    cell.setCellStyle(cellStyle);
    //第三列
    cell = row.createCell(2);
    cell.setCellValue("帮扶人联系电话");
    cell.setCellStyle(cellStyle);
    //第四列
    cell = row.createCell(3);
    cell.setCellValue("帮扶时间");
    cell.setCellStyle(cellStyle);
    //第五列
    cell = row.createCell(4);
    cell.setCellValue("帮扶内容");
    cell.setCellStyle(cellStyle);
    //第六列
    cell = row.createCell(5);
    cell.setCellValue("帮扶结果");
    cell.setCellStyle(cellStyle);
    //第七列
    cell = row.createCell(6);
    cell.setCellValue("帮扶单位");
    cell.setCellStyle(cellStyle);

    //5.写入数据
    for (int i = 0; i < bfjl.size(); i++) {
    //在excel中新增一行
    row = sheet.createRow(i + 2);//标题占一行,表头已占一行,故从第三行开始添加数据
    //在新增的一行中,依次创建单元格放入上面定义的列值
    row.createCell(0).setCellValue(i+1);//序号
    row.createCell(1).setCellValue(bfjl.get(i).getStr("BFRY"));//帮扶人员
    row.createCell(2).setCellValue(bfjl.get(i).getStr("BFRLXDH"));//帮扶人联系电话
    row.createCell(3).setCellValue(bfjl.get(i).getTimestamp("BFSJ").toString());//帮扶时间
    row.createCell(4).setCellValue(bfjl.get(i).getStr("BFNR"));//帮扶内容
    row.createCell(5).setCellValue(bfjl.get(i).getStr("BFJG"));//帮扶结果
    row.createCell(6).setCellValue(bfjl.get(i).getStr("BFDW"));//帮扶单位
    }
    //6.将其生成一个excel文件,输出
    //String name = PathKit.getWebRootPath()+"/download/"+rkxx.getStr("xm")+".xls";
    String name =rkxx.getStr("xm")+".xls";
    try {
    //在本地生成一个excel文件,在传
    /*File file = new File(name);
    FileOutputStream file1 = new FileOutputStream(file);
    excel.write(file1);
    file1.close();*/

           String downFileName = new String("登陆日志.xls");  

            try {  

          //若不进行编码在IE下会乱码  

               downFileName = URLEncoder.encode(downFileName, "UTF-8");  

           } catch (UnsupportedEncodingException e) {  

                e.printStackTrace();  

            }


    //直接获取输出,直接输出excel(优先使用)
    OutputStream output=response.getOutputStream();
       response.reset();
       response.setHeader("Content-disposition", "attachment; downFileName ="+ URLEncoder.encode(name, "utf-8"));
       response.setContentType("application/msexcel");        
       excel.write(output);
       output.close();
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }

  • 相关阅读:
    delphi内存管理
    Dbgrid导出为word
    indy传输文件
    TMethod
    http状态码详解
    如何严格设置php中session过期时间
    http和https的优缺点,区别与工作原理
    session的生命周期
    Mysql分库分表方案,如何分,怎样分?
    【观点】程序员应知——循序渐进 狼人:
  • 原文地址:https://www.cnblogs.com/zhengjie-yjx/p/8302246.html
Copyright © 2020-2023  润新知