最简单的填充
1.首先引入EasyExcel的依赖如下:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
</dependency>
2.创建模板文件,文件内容格式如下图所示
3.创建实体类,封装填充数据
@Data
public class FillData {
private String name;
private double number;
}
4.测试类代码如下:
/**
* 最简单的填充
* @since 2.1.1
*/
@Test
public void simpleFill() {
// 模板注意 用{} 来表示你要用的变量 如果本来就有"{","}" 特殊字符 用"\{","\}"代替
// 方案1 根据对象填充
FillData fillData = new FillData();
fillData.setName("xxxx");
fillData.setNumber(0.1);
ExcelWriter excelWriter = null;
try {
//将resource目录下的excel文件加载成流的形式
InputStream modeFileIn = this.getClass().getClassLoader().getResourceAsStream("xxx.xls");
//输出Excel流
OutputStream outputStream = getOutputStream(FILE_NAME, ".xls", resp);
excelWriter = EasyExcel.write(outputStream).withTemplate(modeFileIn).excelType(ExcelTypeEnum.XLS).build();
//获取工作区对象
WriteSheet writeSheet = EasyExcel.writerSheet().build();
//填充数据
excelWriter.fill(fillData, writeSheet);
} catch (Exception e) {
e.printStackTrace();
} finally {
// 千万别忘记关闭流
if (excelWriter != null) {
excelWriter.finish();
}
}
}
//设置下载excel
/**
* 设置响应流参数
*
* @param fileName 下载文件名
* @param fileType 文件格式,
* @param response 响应流
* @return
*/
public static OutputStream getOutputStream(String fileName, String fileType, HttpServletResponse response) {
try {
fileName = URLEncoder.encode(fileName, "UTF-8");
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf8");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName + fileType);
response.setHeader("Pragma", "public");
response.setHeader("Cache-Control", "no-store");
response.addHeader("Cache-Control", "max-age=0");
return response.getOutputStream();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
其他复杂的Excel操作参考:www.yuque.com/easyexcel/d…