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

2018/01/17 12:56
阅读数 277

/*
* 将数据放入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();
}

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部