关于java生成excel表格并发送给邮箱

今天成功解决了一个问题 就是使用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();
}
}
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值