admin管理员组

文章数量:1609530

今天成功解决了一个问题 就是使用java完成了excel作为附件发送给邮箱 前提是在代码里生成表格 上穿本地excel的暂时还未掌握(:

代码

//从数据库取出数据 根据version发送过的就不再发送
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
String ZUOTIAN = dateFormat.format(new Date());
List<Map<String, Object>> list2 = checkMapper.selectRemind();
System.out.println(list2 + "map结果是否为空");
if (list2 != null && list2.size() > 0) {
 //导入到excel中
//遍历集合  封装,然后发送邮件
 if (list2.size() > 0) {
//发送邮件
//excel标题
String[] title = {"预算编号", "问题原因", "来源"};
 //sheet名
String sheetName = ZUOTIAN + "预算接口失败提醒";
//将数据存入二维数组
String[][] content = new String[list2.size()][title.length];
String deptEmail = "邮箱地址";
for (int j = 0; j < list2.size(); j++) {
//获取数据库表中的每个字段的值放入二维数组
content[j][0] = list2.get(j).get("code").toString();
content[j][1] = list2.get(j).get("reason").toString();
content[j][2] = list2.get(j).get("source").toString();
                                }
String[] emailStringTO = new String[1];
emailStringTO[0] = deptEmail;
//创建HSSFWorkbook
HSSFWorkbook wb = CreateExcel.getHSSFWorkbook(sheetName, title, content);
/***********************准备邮件并发送**********************/
//ByteArrayOutputStream 好像是一个缓存流 将wb工作簿写入进去 然后就可以转换为inputstream 
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//抄送我
String[] emailStringCC = new String[1];
emailStringCC[0] = "邮箱地址";
 try {
 wb.write(baos);
 baos.flush();
 byte[] bt = baos.toByteArray();
 InputStream is = new ByteArrayInputStream(bt, 0, bt.length);
   baos.close();
//sendMail是自己写的一个发送邮箱的方法  需要的可自行百度
   sendMail.sendEmail2(ZUOTIAN + "预算接口失败提醒", ZUOTIAN + "预算接口失败提醒(自动发送)", ZUOTIAN + "预算接口失败提醒.xls", is, emailStringTO, emailStringCC);
for (Map result :list2) {
//  修改version
 checkMapper.updateVersion(result);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

本文标签: 表格邮箱JavaExcel