首先准备实体类以及数据
public class DemoData {
@ExcelProperty({"主题","字符串标题"})
private String string;
@ExcelProperty({"主题","日期标题"})
private Date date;
@ExcelProperty({"主题","数字标题"})
private Double doubleData;
/**
* 忽略这个字段
*/
@ExcelIgnore
private String ignore;
public String getString() {
return string;
}
public void setString(String string) {
this.string = string;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public Double getDoubleData() {
return doubleData;
}
public void setDoubleData(Double doubleData) {
this.doubleData = doubleData;
}
public String getIgnore() {
return ignore;
}
public void setIgnore(String ignore) {
this.ignore = ignore;
}
}
private List<DemoData> data() {
List<DemoData> list = new ArrayList<DemoData>();
for (int i = 0; i < 10; i++) {
DemoData data = new DemoData();
data.setString("字符串" + i);
data.setDate(new Date());
data.setDoubleData(0.56);
list.add(data);
}
return list;
}
第一种是直接输出到指定的文件路径下:
@RequestMapping("/test1")
@LogMsg("输出到文件路径下")
public void test1() {
String fileName = "D:/RESOURCE_ROOT/CoreResrcFile/" + "simpleWrite" + System.currentTimeMillis() + ".xlsx";
EasyExcel.write(fileName, DemoData.class).sheet("模板").doWrite(data());
return ;
}
第二种是利用response在页面上下载:
需要注意的是,第二种方式下,是不能使用ajax进行的。
@RequestMapping("/test2")
@LogMsg("页面下载")
public void goToFirm(HttpServletResponse response) throws IOException {
try {
List list = data();
String fileName = new String("文件名称.xlsx".getBytes(), "ISO-8859-1");
response.addHeader("Content-Disposition", "filename=" + fileName);
ServletOutputStream out = response.getOutputStream();
EasyExcelFactory.write(out,DemoData.class).sheet("文件标签名称").doWrite(list);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}