欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > Javamail发送Excel附件具体实现

Javamail发送Excel附件具体实现

2025/11/1 6:09:13 来源:https://blog.csdn.net/m0_73864806/article/details/143811984  浏览:    关键词:Javamail发送Excel附件具体实现

在我写大学生高考志愿填报的时候,将推荐出来的专业表的信息发送到指定的账户的邮件中

下面代码的实现讲解:

  • 首先创建配置文件,配置邮箱账户的信息
  • 配置用于生成表格的实体类,实体类中的信息就对应着Excel表中的信息
  • 逻辑的具体实现:
    • 首先从Cookie中获取账户的邮箱信息,(我在cookie中只存了账户的邮箱号,没有帐户其他的信息)。
    • 获取我查询结果的datas
    • 将datas封装成Excel表格
    • 发送带有Excel表格的邮件
    • 将本地的Excel表格删除掉
application.yml:
spring:mail:host: smtp.qq.comusername: 2asdfasdf7@qq.compassword: asdoighwakjfnsproperties:mail:smtp:ssl:enable: true
entity层:(实体类中的血法)
@Getter
@Setter
@TableName("t_pitch")
public class Pitch implements Serializable {private static final long serialVersionUID = 1L;@ExcelIgnore@TableId(value = "id", type = IdType.AUTO)private Integer id;/*** 院校代号*/@ExcelProperty("院校代号")@TableField("schoolCode")private String schoolCode;/*** 学校名称*/@ExcelProperty("学校名称")@TableField("schoolName")private String schoolName;/*** 专业代号*/@ExcelProperty("专业代号")@TableField("pCode")private String pCode;/*** 专业名称*/@ExcelProperty("专业名称")@TableField("pName")private String pName;/*** 最低投档分数*/@ExcelProperty("最低投档分数")@TableField("lowestScore")private String lowestScore;/*** 最低投档位次*/@ExcelProperty("最低投档位次")@TableField("lowestRank")private String lowestRank;
}
controller层代码:
@RequestMapping("/sendExcel")
@ResponseBody
public void sendExcel(HttpServletRequest request, HttpServletResponse response) throws MessagingException {//1、获取cookie中的邮箱信息Cookie[] cookies = request.getCookies();for(Cookie cookie:cookies){if(cookie.getName().equals("email")){email1 = cookie.getValue();break;}}//2、获取表中的信息 datas,然后生成xlsx//写文件:String tempFilePath=PATH+"专业推荐表.xlsx";EasyExcel.write(tempFilePath,Pitch.class).sheet("统计表1").doWrite(datas);//3、发送信息MimeMessage message = javaMailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(message,true);helper.setFrom("211111111@qq.com");helper.setTo(email1);helper.setSubject("邮件发送数据");helper.setText("以下是为您导出的专业推荐表");File file = new File(tempFilePath);DataSource source= new FileDataSource(file);helper.addAttachment(file.getName(),source);javaMailSender.send(message);boolean delete = file.delete();if (delete) {System.out.println("Temporary file deleted successfully.");} else {System.out.println("Failed to delete temporary file.");}}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词