java - java - 如何在java springboot中通过电子邮件发送HSSFWorkbook xls?
问题描述
所以我有自己的 java springboot 代码,它使用本地目录中的 List 编写一个 excel 电子表格。基本上它只是获取我想要的目录中的文件列表,然后将目录中每个 zip 文件的内容列出到 Excel 电子表格中。然后我使用 FileOutputStream 将该 XLS 生成到另一个目录中。代码看起来像:
HSSFWorkbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet("Test sheet");
/*
...
insert code to create the rows and cells of the workbook/sheet
...
*/
FileOutputStream fileOutputStream = new FileOutputStream("/test/random/excelspreadsheets")
workbook.write(fileOutputStream);
fileOutputStream.close();
所以这会写入 xls,生成它并将其保存到指定的目录中,但我的问题是,我如何将其作为电子邮件发送,主题为 cc、发件人、收件人,最重要的是作为电子邮件的附件来指定我的电子邮件或朋友的电子邮件?在过去的一天里,我一直在挠头,不知道,这对我来说似乎很模糊。谢谢!
解决方案
首先添加这个依赖
<!-- Email -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>${spring.boot.version}</version>
</dependency>
然后您可以使用以下服务发送此电子邮件
@Service
public class EmailService {
private JavaMailSender emailSender;
@Autowired
public EmailService(JavaMailSender emailSender) {
this.emailSender = emailSender;
}
public void sendEmail() {
String to = "recepient@gmail.com";
String subject = "email subject";
String text = "email text";
MimeMessage message = emailSender.createMimeMessage();
//TODO here convert your workbook to a xlsx file
File file = new File("yourFile.xlsx");
if (file.exists() && !file.isDirectory()) {
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(text);
helper.addAttachment("yourFile.xlsx", file);
} catch (Exception ex) {
System.out.println("Error");
}
}
emailSender.send(message);
}
推荐阅读
- python - 如何获取从几个netcdf文件中提取的数组的平均值,日期时间,小时作为循环中的增量
- excel - Excel 在 VBA 公式复制期间冻结(200,000 行 +)
- android - 安卓应用计数器
- php - PHP 中的 Foreach-loop 不能正确“读取”表格
- ruby-on-rails - 为什么这个哈希被视为一个字符串?
- javascript - 使用 tab 键选择一个 div 并在 enter 键上添加事件
- php - 如何使用 PHP 连接 D3 ODBC DB
- ajax - how to store multiple form with multiple buttons data on single page using ajax in laravel
- chatbot - Dialogflow bot 作为具有 .net 集成的系统实体值的未知输入返回
- java - 使用 SQL 将标准 DAO 迁移到 Hibernate 和/或 Spring 数据 JPA