导入jar包
<dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-base</artifactId> <version>3.0.2</version> </dependency> <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-web</artifactId> <version>3.0.2</version> </dependency> <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-annotation</artifactId> <version>3.0.2</version> </dependency>
java代码
@ResponseBody
@RequestMapping(value = "/downLoad")
public Msg downLoad(){
try {
List<GoodsType> goodsTypes = goodsTypeService.queryAll();
File savefile = new File("D:/excel/");
if (!savefile.exists()) {
savefile.mkdirs();
}
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("计算机一班学生","学生"),GoodsType .class, goodsTypes);//excel表中表头名,左下角页面名称,数据设置
FileOutputStream fos = new FileOutputStream("D:/excel/ExcelExportHasImgTest.exportCompanyImg.xls");
workbook.write(fos);
fos.close();
} catch (Exception e) {
e.printStackTrace();
Msg.error();
}
return Msg.ok();
}
实体类字段加注释
@Excel(name="名称") private String name; //名称 @Excel(name="排序",width = 35)//width导出后的宽度设置 private String sort; //商品类别 @Excel(name="显示隐藏",replace = { "显示_0", "隐藏_1" }) private String isopen; //显示隐藏
结果(类中字段的前后关系到excel表中的排序)
//项目中的导出
@ResponseBody
@RequestMapping(value = "/downLoad")
@Logger(name="下载")
@Transactional
public Msg downLoad(HttpServletResponse response,HttpServletRequest request) {
Workbook workbook = null;
try {
Map<String,String> map = RequestUtil.paramToMap(request);
String tableName = Order.TABLE_NAME_CHINESE;
response.setHeader("Content-disposition", "attachment;filename="+ URLEncoder.encode(tableName,"utf-8")+".xls");//tableName设置导出的execl名称
List<Order> order = orderService.queryAll(map);
for (Order od : order) {
orderService.updateState(od.getId());
}
//修改订单状态为不能取消状态
workbook = ExcelExportUtil.exportExcel(new ExportParams(tableName,tableName),Order.class, order);//new ExportParams("execl表中表头名称","execl表中左下角名称")
ServletOutputStream out=response.getOutputStream();//封装下载的工具类
workbook.write(out);//进行下载
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
Msg.error();
}
return Msg.ok();
}