EasyExcel的写操作/邮件流发送

序言

EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。

一、基本读取Excel数据

1.pom.xml引入依赖

 		<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.2.6</version>
        </dependency>

2.创建excel表头字段对应的实体类

@Data
public class Excel {
    //使用ExcelProperty注解完成实体类与Excel字段的映射
    @ExcelProperty("表单名")
    private String name;
    @ExcelProperty("路径")
    private String path;
    @ExcelProperty("分类")
    private String category;
    @ExcelProperty("优先级别")
    private String level;
    @ExcelProperty("备注")
    private String note;
    @ExcelProperty("对接人")
    private String acceptMan;

}

3.写的两种操作

指定文件路径的写,输出excel文件。

public class simpleExcel {
    public static void main(String[] args) {
        //接收的对象的路径,如果没有会在路径上自动创建文件
		 String fileName = "D:\\user\\demo.xlsx";
    // 这里 需要指定写用哪个class去读,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
    // 如果这里想使用03 则 传入excelType参数即可
    // 参数一:写入excel文件路径
    // 参数二:写入的数据类型是DemoData
    // data()方法是写入的数据,结果是List<DemoData>集合
   	    EasyExcel.write(fileName, DemoData.class).sheet("模板").doWrite(data());
}
  }
}

指定输入流文件,输出流。数据都存在流中,outputStream。

  //流的形式
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            EasyExcel.write(outputStream)
                    .head(SparesAccountExportVo.class)
                    .sheet("物料数据")
                    .doWrite(ingredientsAccountExportVoList);
 InputStream inputStream = new  ByteArrayInputStream(outputStream.toByteArray());

使用MimeMessageHelper发送邮件,使用流输出。

MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(message, true);
messageHelper.setFrom(new InternetAddress(configPo.getFromAddr(), configPo.getNickName(), "UTF-8"));
InputStream is = str2Inputstr(email.getInputStream());
messageHelper.addAttachment("数据Excel形式文件.xlsx",  new ByteArrayResource(IOUtils.toByteArray(is)));

猜你喜欢

转载自blog.csdn.net/after_17/article/details/114048277