package net.tccn.base; import org.apache.poi.ss.usermodel.Workbook; import org.redkale.convert.Convert; import org.redkale.net.http.*; import org.redkale.util.AnyValue; import java.io.File; import java.io.FileOutputStream; import java.util.List; import java.util.Map; /** * @author: liangxianyou */ public class MetaRender implements HttpRender { @Override public void init(HttpContext context, AnyValue config) { } @Override public void renderTo(HttpRequest request, HttpResponse response, Convert convert, V scope) { String referid = scope.getReferid(); Map attr = scope.getAttributes(); if ("excel".equals(referid)) { List list = (List) attr.get("data"); Kv heads = (Kv) attr.get("heads"); String fileName = (String) attr.get("fileName"); try { Workbook workbook = ExcelKit.exportExcel(list, heads); File file = new File(String.format("tmp/%s.xls", fileName)); file.getParentFile().mkdirs(); if (file.exists()) file.delete(); FileOutputStream fos = new FileOutputStream(file); workbook.write(fos); try { fos.close(); workbook.close(); } catch (Exception e) { e.printStackTrace(); } response.finish(file); } catch (Exception e) { e.printStackTrace(); } } } @Override public Class getType() { return HttpScope.class; } }