浏览代码

Merge remote-tracking branch 'origin/master'

Administrator 3 年之前
父节点
当前提交
185ab4471d

+ 1798 - 1798
boman-report/src/main/java/org/jeecg/modules/jmreport/common/ExportExcelService.java

@@ -1,1798 +1,1798 @@
-package org.jeecg.modules.jmreport.common;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.openxml4j.opc.PackagePartName;
-import org.apache.poi.openxml4j.opc.PackageRelationship;
-import org.apache.poi.openxml4j.opc.TargetMode;
-import org.apache.poi.ss.usermodel.*;
-import org.apache.poi.ss.util.CellRangeAddress;
-import org.apache.poi.ss.util.CellReference;
-import org.apache.poi.ss.util.RegionUtil;
-import org.apache.poi.xssf.streaming.SXSSFCell;
-import org.apache.poi.xssf.streaming.SXSSFRow;
-import org.apache.poi.xssf.streaming.SXSSFSheet;
-import org.apache.poi.xssf.streaming.SXSSFWorkbook;
-import org.apache.poi.xssf.usermodel.*;
-import org.jeecg.modules.jmreport.common.constant.CommonConstant;
-import org.jeecg.modules.jmreport.common.constant.JmConst;
-import org.jeecg.modules.jmreport.common.expetion.JimuReportException;
-import org.jeecg.modules.jmreport.common.util.CommonUtils;
-import org.jeecg.modules.jmreport.common.util.ExcelUtil;
-import org.jeecg.modules.jmreport.common.util.GoogleBarCodeUtils;
-import org.jeecg.modules.jmreport.common.util.oConvertUtils;
-import org.jeecg.modules.jmreport.common.vo.JmDictModel;
-import org.jeecg.modules.jmreport.common.vo.Result;
-import org.jeecg.modules.jmreport.config.JmReportBaseConfig;
-import org.jeecg.modules.jmreport.config.oss.JmReportUploadConfig;
-import org.jeecg.modules.jmreport.desreport.dao.JimuReportDao;
-import org.jeecg.modules.jmreport.desreport.dao.JimuReportDbDao;
-import org.jeecg.modules.jmreport.desreport.dao.JimuReportDbFieldDao;
-import org.jeecg.modules.jmreport.desreport.dao.JimuReportDbParamDao;
-import org.jeecg.modules.jmreport.desreport.entity.JimuReport;
-import org.jeecg.modules.jmreport.desreport.entity.JmReportDb;
-import org.jeecg.modules.jmreport.desreport.entity.JmReportDbField;
-import org.jeecg.modules.jmreport.desreport.entity.JmReportDbParam;
-import org.jeecg.modules.jmreport.desreport.model.JmExpression;
-import org.jeecg.modules.jmreport.desreport.model.RenderInfo;
-import org.jeecg.modules.jmreport.desreport.model.ReportDbInfo;
-import org.jeecg.modules.jmreport.desreport.render.utils.ExcelColumn;
-import org.jeecg.modules.jmreport.desreport.render.utils.ReportUtil;
-import org.jeecg.modules.jmreport.desreport.service.IJimuReportDictService;
-import org.jeecg.modules.jmreport.desreport.service.IJmReportExportExcel;
-import org.jeecg.modules.jmreport.desreport.service.a.e;
-import org.jeecg.modules.jmreport.desreport.util.b;
-import org.jeecg.modules.jmreport.desreport.util.d;
-import org.jeecg.modules.jmreport.dyndb.JmreportDataSourceCachePool;
-import org.jeecg.modules.jmreport.dyndb.JmreportDynamicDbUtil;
-import org.jeecg.modules.jmreport.dyndb.util.JmreportSqlUtils;
-import org.jeecg.modules.jmreport.dyndb.vo.JmreportDynamicDataSourceVo;
-import org.jeecgframework.minidao.pojo.MiniDaoPage;
-import org.jeecgframework.minidao.util.MiniDaoUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.web.client.ResourceAccessException;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.ProtocolException;
-import java.net.URL;
-import java.nio.file.Files;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-
-import static com.boman.common.core.utils.obj.ObjectUtils.*;
-
-/**
- * @author shiqian
- * @date 2021年08月19日 15:17
- **/
-@Service
-public class ExportExcelService {
-    @Autowired
-    private e jmReportDesignService;
-    @Autowired
-    private JmReportBaseConfig jmBaseConfig;
-    @Autowired
-    private JmReportUploadConfig jimuReportUploadConfig;
-    @Autowired
-    private JimuReportDao reportDao;
-    @Autowired
-    private JimuReportDbParamDao dbParamDao;
-    @Autowired
-    private JimuReportDbDao reportDbDao;
-    @Autowired
-    private JmreportDynamicDbUtil jmreportDynamicDbUtil;
-    @Autowired
-    private JimuReportDbFieldDao dbFieldDao;
-    @Autowired
-    private IJimuReportDictService dictService;
-
-    private static final Logger a = LoggerFactory.getLogger(ExportExcelService.class);
-
-    public Map<String, Object> exportEmptyExcel(String excelConfigId, JSONObject queryParam, List echartBase) {
-        XSSFWorkbook var4 = new XSSFWorkbook();
-        SXSSFWorkbook var5 = new SXSSFWorkbook(var4, -1, Boolean.FALSE, Boolean.TRUE);
-        String var6 = "";
-        HashMap var7 = new HashMap();
-        XSSFCellStyle var8 = this.a1(var5);
-        var7.put("generalStyle", var8);
-        boolean var9 = true;
-        new HashMap();
-        int var11 = 1;
-        Integer var12 = this.jmBaseConfig.getPageSizeNumber();
-        if (null == queryParam || queryParam.size() == 0) {
-            queryParam = new JSONObject();
-        }
-
-        while(var9) {
-            if (oConvertUtils.isEmpty(var12)) {
-                var12 = 10000;
-            }
-
-            if (oConvertUtils.isNotEmpty(var12) && "0".equals(String.valueOf(var12))) {
-                var12 = 10000;
-            }
-
-            queryParam.put("pageNo", var11);
-            queryParam.put("pageSize", var12);
-            Result var13 = this.jmReportDesignService.show(excelConfigId, queryParam.toJSONString());
-            JimuReport var14 = (JimuReport)var13.getResult();
-            JSONObject var15 = JSON.parseObject(var14.getJsonStr());
-            JSONObject var16 = var15.getJSONObject("rows");
-            if (var16.containsKey("-1")) {
-                var16.remove("-1");
-            }
-
-            if (var16.containsKey("len")) {
-                var16.remove("len");
-            }
-
-            if (var16.size() < var12) {
-                var9 = false;
-            }
-
-            if (var16.size() > var12) {
-                var9 = false;
-            }
-
-            var6 = var14.getName();
-            JSONObject var17 = JSON.parseObject(var14.getJsonStr());
-            this.a2((JSONObject)var17, (List)echartBase, (SXSSFWorkbook)var5, (XSSFWorkbook)var4, (Integer)var11, (Map)var7);
-            ++var11;
-        }
-
-        HashMap var18 = new HashMap();
-        var18.put("name", var6 + ".xlsx");
-        var18.put("workbook", var5);
-        return var18;
-    }
-
-    private XSSFCellStyle a1(SXSSFWorkbook var1) {
-        XSSFCellStyle var2 = (XSSFCellStyle)var1.createCellStyle();
-        XSSFFont var3 = (XSSFFont)var1.createFont();
-        var3.setFontName("宋体");
-        var2.setFont(var3);
-        var2.setAlignment(HorizontalAlignment.CENTER);
-        var2.setVerticalAlignment(VerticalAlignment.CENTER);
-        return var2;
-    }
-
-    private void a3(Sheet var1, JSONObject var2) {
-        var1.setDefaultColumnWidth(12);
-        Iterator var3 = var2.keySet().iterator();
-
-        while(var3.hasNext()) {
-            String var4 = (String)var3.next();
-            JSONObject var5 = (JSONObject)var2.get(var4);
-            var1.setColumnWidth(Integer.parseInt(var4), 35 * (int)((double)var5.getInteger("width") + 0.8D));
-        }
-
-    }
-
-    private SXSSFWorkbook a2(JSONObject var1, List var2, SXSSFWorkbook var3, XSSFWorkbook var4, Integer var5, Map<String, CellStyle> var6) {
-        JSONArray var7 = null;
-        JSONArray var8 = null;
-        JSONArray var9 = null;
-        JSONArray var10 = null;
-        JSONObject var11 = null;
-        if (var1.containsKey("imgList")) {
-            var7 = var1.getJSONArray("imgList");
-        }
-
-        if (var1.containsKey("chartList")) {
-            var8 = var1.getJSONArray("chartList");
-        }
-
-        if (var1.containsKey("barcodeList")) {
-            var9 = var1.getJSONArray("barcodeList");
-        }
-
-        if (var1.containsKey("qrcodeList")) {
-            var10 = var1.getJSONArray("qrcodeList");
-        }
-
-        if (var1.containsKey("background")) {
-            Object var12 = var1.get("background");
-            if (var12 instanceof JSONObject) {
-                var11 = var1.getJSONObject("background");
-            }
-        }
-
-        JSONObject var13;
-        String var14;
-        if (var8 != null && var8.size() > 0 && var2.size() > 0) {
-            for(int var31 = 0; var31 < var8.size(); ++var31) {
-                var13 = var8.getJSONObject(var31);
-                var14 = (String)var13.get("layer_id");
-                List var15 = var2;
-                String var16 = "";
-
-                for(int var17 = 0; var17 < var15.size(); ++var17) {
-                    Map var18 = (Map)var15.get(var17);
-                    if (((String)var18.get("id")).equals(var14)) {
-                        var16 = (String)var18.get("base64");
-                    }
-                }
-
-                String[] var35 = var16.split("base64,");
-                var13.put("url", var35[1]);
-            }
-        }
-
-        JSONObject var32 = var1.getJSONObject("rows");
-        var13 = var1.getJSONObject("cols");
-        if (var13.containsKey("len")) {
-            var13.remove("len");
-        }
-
-        if (var32.containsKey("-1")) {
-            var32.remove("-1");
-        }
-
-        var14 = var1.getString("name");
-        Object var33 = var1.get("styles");
-        HashMap var34 = new HashMap();
-        int var37;
-        if (var33 instanceof JSONArray) {
-            JSONArray var36 = var1.getJSONArray("styles");
-
-            for(var37 = 0; var37 < var36.size(); ++var37) {
-                var34.put(String.valueOf(var37), var36.get(var37));
-            }
-        }
-
-        if (var33 instanceof JSONObject) {
-            JSONObject var38 = (JSONObject)var33;
-
-            for(var37 = 1; var37 <= var38.size(); ++var37) {
-                var34.put(String.valueOf(var37), var38.get(var37));
-            }
-        }
-
-        Object var39 = null;
-        String var40 = this.jmBaseConfig.getExportExcelPattern();
-        if (oConvertUtils.isEmpty(var40) || "fast".equals(var40)) {
-            var3.createSheet("sheet" + var5);
-            var39 = var3.getSheetAt(var5 - 1);
-        }
-
-        if ("primary".equals(var40)) {
-            var4.createSheet("sheet" + var5);
-            var39 = var4.getSheetAt(var5 - 1);
-        }
-
-        this.a3((Sheet)var39, var13);
-        ((Sheet)var39).setDefaultRowHeightInPoints(19.5F);
-        HashMap var19 = new HashMap();
-        HashMap var20 = new HashMap();
-        HashMap var21 = new HashMap();
-        ArrayList var22 = new ArrayList();
-        HashMap var23 = new HashMap();
-        Map var24 = this.a4(var32);
-        HashMap var25 = new HashMap();
-        long var26 = System.currentTimeMillis();
-        HashMap var28 = new HashMap();
-        this.a5((Map)var34, (Workbook)var3, (Map)var6);
-        if (var39 instanceof SXSSFSheet) {
-            this.a5((SXSSFWorkbook)var3, var32, var34, (SXSSFSheet)((SXSSFSheet)var39), var19, var20, var21, var22, var24, var25, var28, var5, var6);
-        }
-
-        if (var39 instanceof XSSFSheet) {
-            this.a7((XSSFWorkbook)var4, var32, var34, (XSSFSheet)((XSSFSheet)var39), var19, var20, var21, var22, var24, var25, var28, var5, var6);
-        }
-
-        long var29 = System.currentTimeMillis();
-        a.info("循环数据运行时间:" + (var29 - var26) + "ms");
-        if (var32.size() < this.jmBaseConfig.excelStyleRow && var5 == 1 || var39 instanceof XSSFSheet) {
-            this.a10((JSONObject)var32, (Sheet)var39, (SXSSFWorkbook)var3, (Map)var34, (Map)var28, (Map)var23);
-            this.a11((Sheet)var39, (SXSSFWorkbook)var3, (Map)var23);
-        }
-
-        this.a12((Workbook)var3, (Sheet)var39, (Map)var19, (Map)var28, (Map)var20, (Map)var21);
-        if (var7 != null) {
-            this.a16((Sheet)var39, (XSSFWorkbook)var4, (JSONArray)var7, (Map)var28, var25);
-        }
-
-        if (var8 != null) {
-            this.a17((Sheet)var39, (SXSSFWorkbook)var3, (JSONArray)var8, (Map)var25, (JSONObject)var13, (JSONObject)var32);
-        }
-
-        if (var9 != null) {
-            this.a18((Sheet)var39, (Workbook)var3, (JSONArray)var9, (List)var2, var25);
-        }
-
-        if (var10 != null) {
-            this.a18((Sheet)var39, (Workbook)var3, (JSONArray)var10, (List)var2, var25);
-        }
-
-        if (var11 != null) {
-            this.a19((Sheet)var39, (XSSFWorkbook)var4, (JSONObject)var11);
-        }
-
-        if (null != var22 && var22.size() > 0) {
-            this.a23((Sheet)var39, (SXSSFWorkbook)var3, (List)var22, (Map)var28, var25);
-        }
-
-        return var3;
-    }
-
-
-    public Map<String, Integer> a24(Sheet var1, Map<String, String> var2, Integer var3, Integer var4) {
-        HashMap var5 = new HashMap();
-        String var6 = (String)var2.get(var3 + "," + var4);
-        Row var7 = var1.getRow(var3);
-        Cell var8 = var7.getCell(var4);
-        var8.setCellValue("");
-        int var9 = (int)var8.getSheet().getColumnWidthInPixels(var8.getColumnIndex());
-        int var10 = (int)var7.getHeightInPoints();
-        int var11 = 0;
-        int var12 = 0;
-        int var13 = var3;
-        int var14 = var4;
-        if (oConvertUtils.isNotEmpty(var6)) {
-            String[] var15 = var6.split(",");
-            int var16 = Integer.parseInt(var15[0]);
-            int var17 = Integer.parseInt(var15[1]);
-
-            int var18;
-            for(var18 = var7.getRowNum() + 1; var18 < var16 + 1; ++var18) {
-                Row var19 = var1.getRow(var18);
-                if (var19 != null) {
-                    var12 += (int)var1.getRow(var18).getHeightInPoints();
-                }
-            }
-
-            for(var18 = var8.getColumnIndex() + 1; var18 < var17 + 1; ++var18) {
-                var11 += (int)var1.getColumnWidthInPixels(var18);
-            }
-        }
-
-        var9 += var11;
-        var10 += var12;
-        var5.put("width", var9);
-        var5.put("height", var10);
-        return var5;
-    }
-
-    private void a23(Sheet var1, SXSSFWorkbook var2, List<Map<String, Object>> var3, Map<String, String> var4, Map<String, Object> var5) {
-        Drawing var6 = var1.createDrawingPatriarch();
-
-        for(int var7 = 0; var7 < var3.size(); ++var7) {
-            Map var8 = (Map)var3.get(var7);
-            boolean var9 = false;
-            boolean var10 = false;
-            int var23 = Integer.valueOf(var8.get("cell").toString());
-            int var22 = Integer.valueOf(var8.get("row").toString());
-            String var11 = var8.get("text").toString();
-            String var12 = var8.get("display").toString();
-            Map var13 = this.a24(var1, var4, var22, var23);
-            Integer var14 = (Integer)var13.get("width");
-            Integer var15 = (Integer)var13.get("height");
-            Object var16 = null;
-            String var17 = (String)var8.get("layer_id");
-            Object var18 = var5.get(var17);
-            if (null != var18) {
-                String[] var19 = String.valueOf(var18).split(",");
-                var22 = Integer.parseInt(var19[0]);
-                var23 = Integer.parseInt(var19[1]);
-            }
-
-            byte[] var24;
-            if ("img".equals(var12)) {
-                var24 = this.a20(var11);
-            } else {
-                var24 = GoogleBarCodeUtils.createCodeToFile(var11, var12, var14, var15);
-            }
-
-            String var25 = (String)var4.get(var22 + "," + var23);
-            if (oConvertUtils.isNotEmpty(var25)) {
-                String[] var20 = var25.split(",");
-                XSSFClientAnchor var21 = new XSSFClientAnchor(0, 0, var14, var15, var23, var22, Integer.parseInt(var20[1]) + 1, Integer.parseInt(var20[0]) + 1);
-                var6.createPicture(var21, var2.addPicture(var24, 5));
-            } else {
-                XSSFClientAnchor var26 = new XSSFClientAnchor(0, 0, var14, var15, var23, var22, var23 + 1, var22 + 1);
-                var6.createPicture(var26, var2.addPicture(var24, 5));
-            }
-        }
-
-    }
-
-    private Map<String, Object> a4(JSONObject var1) {
-        HashMap var2 = new HashMap();
-        Iterator var3 = var1.keySet().iterator();
-
-        label60:
-        while(true) {
-            String var4;
-            int var5;
-            do {
-                do {
-                    do {
-                        do {
-                            if (!var3.hasNext()) {
-                                return var2;
-                            }
-
-                            var4 = (String)var3.next();
-                        } while("cells".equals(var4));
-                    } while("isDrag".equals(var4));
-                } while("len".equals(var4));
-
-                var5 = Integer.parseInt(var4);
-            } while(var5 < 0);
-
-            JSONObject var6 = var1.getJSONObject(var4).getJSONObject("cells");
-            var6 = this.b1(var6);
-            Iterator var7 = var6.keySet().iterator();
-
-            while(true) {
-                String var8;
-                String var10;
-                Matcher var13;
-                do {
-                    JSONObject var9;
-                    do {
-                        do {
-                            if (!var7.hasNext()) {
-                                continue label60;
-                            }
-
-                            var8 = (String)var7.next();
-                        } while("-1".equals(var8));
-
-                        var9 = var6.getJSONObject(var8);
-                    } while(!var9.containsKey("text"));
-
-                    var10 = var9.getString("text");
-                    String var11 = "^[=][A-Z]{1,2}[^\\u4e00-\\u9fa5]+$";
-                    Pattern var12 = Pattern.compile(var11);
-                    var13 = var12.matcher(var10);
-                } while(!ExcelUtil.isHave(CommonConstant.JIMUREPORT_FUNCTION, var10) && !var13.matches());
-
-                var2.put(var4 + "," + var8, var10);
-            }
-        }
-    }
-    private void a5(Map<String, JSONObject> var1, Workbook var2, Map<String, CellStyle> var3) {
-        Iterator var4 = var1.entrySet().iterator();
-
-        while(true) {
-            Map.Entry var5;
-            JSONObject var7;
-            XSSFCellStyle var8;
-            do {
-                do {
-                    do {
-                        CellStyle var6;
-                        do {
-                            if (!var4.hasNext()) {
-                                return;
-                            }
-
-                            var5 = (Map.Entry)var4.next();
-                            var6 = (CellStyle)var3.get(var5.getKey());
-                        } while(null != var6);
-
-                        var7 = (JSONObject)var5.getValue();
-                    } while(var7 == null);
-                } while("null".equals(var7));
-
-                var8 = (XSSFCellStyle)var2.createCellStyle();
-            } while(null == var7);
-
-            String var9;
-            if (!var7.containsKey("align")) {
-                var8.setAlignment(HorizontalAlignment.LEFT);
-            } else {
-                var9 = var7.getString("align").toUpperCase();
-                var8.setAlignment(HorizontalAlignment.valueOf(var9));
-            }
-
-            if (null != var7 && !var7.containsKey("valign")) {
-                var8.setVerticalAlignment(VerticalAlignment.valueOf("center".toUpperCase()));
-            } else {
-                var9 = var7.getString("valign").toUpperCase();
-                if ("MIDDLE".equals(var9)) {
-                    var9 = "center".toUpperCase();
-                }
-
-                var8.setVerticalAlignment(VerticalAlignment.valueOf(var9));
-            }
-
-            if (null == var7 || var7.containsKey("bgcolor")) {
-                var9 = var7.getString("bgcolor");
-                XSSFColor var10 = new XSSFColor();
-                if (var9.indexOf("#") != -1 && var9.length() > 6) {
-                    String var11 = var9.replaceAll("#", "");
-                    if (var11.length() == 6) {
-                        byte[] var12 = new byte[]{(byte)Integer.parseInt(var11.substring(0, 2), 16), (byte)Integer.parseInt(var11.substring(2, 4), 16), (byte)Integer.parseInt(var11.substring(4, 6), 16)};
-                        var10.setRGB(var12);
-                    }
-                }
-
-                var8.setFillForegroundColor(var10);
-                var8.setFillBackgroundColor(var10);
-                var8.setFillPattern(FillPatternType.BIG_SPOTS);
-            }
-
-            XSSFColor var14;
-            if (null != var7 && var7.containsKey("font") || var7.containsKey("underline") || var7.containsKey("strike") || var7.containsKey("color")) {
-                XSSFFont var18 = (XSSFFont)var2.createFont();
-                JSONObject var17 = (JSONObject)var7.get("font");
-                Object var22 = var7.get("underline");
-                Object var25 = var7.get("strike");
-                if (null != var17) {
-                    if (var17.containsKey("name")) {
-                        var18.setFontName(var17.getString("name"));
-                    }
-
-                    if (var17.containsKey("italic")) {
-                        var18.setItalic(true);
-                    }
-
-                    if (var17.containsKey("size")) {
-                        var18.setFontHeightInPoints(var17.getShort("size"));
-                    }
-
-                    if (var17.containsKey("bold")) {
-                        boolean var13 = var17.getBoolean("bold");
-                        var18.setBold(var13);
-                    }
-                }
-
-                if (null != var22) {
-                    var18.setUnderline((byte)1);
-                }
-
-                if (null != var25) {
-                    var18.setStrikeout(true);
-                }
-
-                if (null != var7 && var7.containsKey("color")) {
-                    String var27 = var7.getString("color");
-                    var14 = new XSSFColor();
-                    if (var27.length() > 6) {
-                        if (var27.contains("rgb")) {
-                            var27 = var27.replace("rgb", "").replace("(", "").replace(")", "");
-                            String[] var15 = var27.split(",");
-                            if (var15.length == 3) {
-                                byte[] var16 = new byte[]{(byte)Integer.parseInt(var15[0]), (byte)Integer.parseInt(var15[1]), (byte)Integer.parseInt(var15[2])};
-                                var14.setRGB(var16);
-                            }
-                        } else if (var27.contains("#")) {
-                            byte[] var29 = new byte[]{(byte)Integer.parseInt(var27.substring(1, 3), 16), (byte)Integer.parseInt(var27.substring(3, 5), 16), (byte)Integer.parseInt(var27.substring(5, 7), 16)};
-                            var14.setRGB(var29);
-                        }
-                    }
-
-                    var18.setColor(var14);
-                }
-
-                var8.setFont(var18);
-            }
-
-            if (var7.containsKey("border")) {
-                JSONObject var20 = var7.getJSONObject("border");
-                JSONArray var19 = var20.getJSONArray("right");
-                JSONArray var24 = var20.getJSONArray("top");
-                JSONArray var26 = var20.getJSONArray("left");
-                JSONArray var28 = var20.getJSONArray("bottom");
-                if (null != var24 && var24.size() > 1) {
-                    var8.setBorderTop(BorderStyle.THIN);
-                    var14 = this.b(var24.get(1).toString());
-                    var8.setTopBorderColor(var14);
-                }
-
-                if (null != var28 && var28.size() > 1) {
-                    var8.setBorderBottom(BorderStyle.THIN);
-                    var14 = this.b(var28.get(1).toString());
-                    var8.setBottomBorderColor(var14);
-                }
-
-                if (null != var26 && var26.size() > 1) {
-                    var8.setBorderLeft(BorderStyle.THIN);
-                    var14 = this.b(var26.get(1).toString());
-                    var8.setLeftBorderColor(var14);
-                }
-
-                if (null != var19 && var19.size() > 1) {
-                    var8.setBorderRight(BorderStyle.THIN);
-                    var14 = this.b(var19.get(1).toString());
-                    var8.setRightBorderColor(var14);
-                }
-            }
-
-            if (var7.containsKey("format")) {
-                DataFormat var23 = var2.createDataFormat();
-                String var21 = var7.getString("format");
-                if ("percent".equals(var21)) {
-                    var8.setDataFormat(var23.getFormat("0.00%"));
-                }
-
-                if ("rmb".equals(var21)) {
-                    var8.setDataFormat(var23.getFormat("¥#,##0"));
-                }
-
-                if ("usd".equals(var21)) {
-                    var8.setDataFormat(var23.getFormat("$#,##0"));
-                }
-
-                if ("eur".equals(var21)) {
-                    var8.setDataFormat(var23.getFormat("€#,##0"));
-                }
-            }
-
-            var8.setWrapText(true);
-            var3.put(var5.getKey().toString(), var8);
-        }
-    }
-
-    public XSSFColor b(String var1) {
-        XSSFColor var2 = new XSSFColor();
-        if (var1.contains("rgb")) {
-            var1 = var1.replace("rgb", "").replace("(", "").replace(")", "");
-            String[] var3 = var1.split(",");
-            if (var3.length == 3) {
-                byte[] var4 = new byte[]{(byte)Integer.parseInt(var3[0]), (byte)Integer.parseInt(var3[1]), (byte)Integer.parseInt(var3[2])};
-                var2.setRGB(var4);
-            }
-        } else if (var1.contains("#") && var1.length() > 6) {
-            byte[] var5 = new byte[]{(byte)Integer.parseInt(var1.substring(1, 3), 16), (byte)Integer.parseInt(var1.substring(3, 5), 16), (byte)Integer.parseInt(var1.substring(5, 7), 16)};
-            var2.setRGB(var5);
-        }
-
-        return var2;
-    }
-
-    private JSONObject b1(JSONObject var1) {
-        ArrayList var2 = new ArrayList();
-        Iterator var3 = var1.keySet().iterator();
-
-        while(var3.hasNext()) {
-            String var4 = (String)var3.next();
-            if (oConvertUtils.isNotEmpty(var4) && !"NaN".equals(var4) && !"len".equals(var4)) {
-                var2.add(Integer.parseInt(var4));
-            }
-        }
-
-        Collections.sort(var2);
-        JSONArray var9 = new JSONArray();
-        JSONObject var5 = new JSONObject(true);
-        Iterator var6 = var2.iterator();
-
-        while(var6.hasNext()) {
-            Integer var7 = (Integer)var6.next();
-            JSONObject var8 = var1.getJSONObject(String.valueOf(var7));
-            var9.add(var8);
-            var5.put(String.valueOf(var7), var8);
-        }
-
-        return var5;
-    }
-
-    private void a5(SXSSFWorkbook var1, JSONObject var2, Map var3, SXSSFSheet var4, Map<String, String> var5, Map<String, JSONObject> var6, Map<String, List<String>> var7, List<Map<String, Object>> var8, Map<String, Object> var9, Map<String, Object> var10, Map<String, String> var11, Integer var12, Map<String, CellStyle> var13) {
-        var2 = this.b1(var2);
-        Iterator var14 = var2.keySet().iterator();
-
-        while(true) {
-            String var15;
-            int var16;
-            do {
-                do {
-                    do {
-                        do {
-                            if (!var14.hasNext()) {
-                                return;
-                            }
-
-                            var15 = (String)var14.next();
-                        } while("cells".equals(var15));
-                    } while("isDrag".equals(var15));
-                } while("len".equals(var15));
-
-                var16 = Integer.parseInt(var15);
-            } while(var16 < 0);
-
-            SXSSFRow var17 = var4.createRow(Integer.parseInt(var15));
-            if (var2.getJSONObject(var15).containsKey("height")) {
-                Integer var18 = var2.getJSONObject(var15).getInteger("height");
-                var17.setHeightInPoints((float)var18 - 9.5F);
-            }
-
-            JSONObject var24 = var2.getJSONObject(var15).getJSONObject("cells");
-            var24 = this.b1(var24);
-            Iterator var19 = var24.keySet().iterator();
-
-            while(var19.hasNext()) {
-                String var20 = (String)var19.next();
-                if (!"-1".equals(var20)) {
-                    JSONObject var21 = var24.getJSONObject(var20);
-                    SXSSFCell var22 = var17.createCell(Integer.parseInt(var20));
-                    if (var21.containsKey("style") && var2.size() < this.jmBaseConfig.excelStyleRow && var12 == 1) {
-                        String var23 = var21.getString("style");
-                        var22.setCellStyle((CellStyle)var13.get(var23));
-                    }
-
-                    if (var2.size() >= this.jmBaseConfig.excelStyleRow) {
-                        var22.setCellStyle((CellStyle)var13.get("generalStyle"));
-                    }
-
-                    this.a6(var1, var21, var15, var20, var4, var22, var3, var11, var8, var5, var9, var13, var6, var7, var17, var10);
-                }
-            }
-        }
-    }
-
-    private void a6(Workbook var1, JSONObject var2, String var3, String var4, Sheet var5, Cell var6, Map var7, Map var8, List var9, Map var10, Map var11, Map<String, CellStyle> var12, Map var13, Map var14, Row var15, Map var16) {
-        String var17 = var2.getString("merge");
-        String var18;
-        if (var2.containsKey("virtual")) {
-            var18 = var2.getString("virtual");
-            if (var16.get(var18) == null) {
-                var16.put(var18, var3 + "," + var4);
-            }
-        }
-
-        if (var17 != null && !"".equals(var17)) {
-            String[] var32 = a9(var17, "[", "]").split(",");
-            int var19 = Integer.parseInt(var32[0]);
-            int var20 = Integer.parseInt(var32[1]);
-            int var21 = Integer.parseInt(var3);
-            int var22 = var19 + var21;
-            int var23 = Integer.parseInt(var4);
-            int var24 = var20 + var23;
-            CellRangeAddress var25 = new CellRangeAddress(var21, var22, var23, var24);
-
-            try {
-                var5.addMergedRegion(var25);
-            } catch (IllegalStateException var30) {
-                a.warn("单元格合并失败,原因重复单元格或者一个单元格不允许重复合并", var30.getMessage());
-            } catch (IllegalArgumentException var31) {
-                a.warn("单元格合并失败,原因重复单元格或者一个单元格不允许重复合并", var31.getMessage());
-            }
-
-            var8.put(var21 + "," + var23, var22 + "," + var24);
-        }
-
-        String var35;
-        String var37;
-        if (var2.containsKey("display")) {
-            var18 = var2.getString("display");
-            if ("barcode".equals(var18) || "qrcode".equals(var18) || "img".equals(var18)) {
-                HashMap var33 = new HashMap();
-                var35 = var2.getString("display");
-                var37 = var2.getString("text");
-                String var38 = var2.getString("style");
-                String var41 = var2.getString("rendered");
-                var33.put("style", (JSONObject)var7.get(var38));
-                var33.put("text", var37);
-                var33.put("display", var35);
-                var33.put("row", var6.getRowIndex());
-                var33.put("cell", var6.getColumnIndex());
-                var33.put("layer_id", var41);
-                var9.add(var33);
-            }
-        }
-
-        if (var2.containsKey("text")) {
-            var18 = var2.getString("text");
-            String var34 = "";
-
-            try {
-                var34 = this.a8(var2, var7, var18);
-            } catch (Exception var29) {
-                var29.printStackTrace();
-            }
-
-            if (var18.contains("|")) {
-                Object var36 = var2.get("lineStart");
-                if (null != var36) {
-                    var10.put(var3 + "," + var4, var36.toString());
-                    var37 = var2.getString("style");
-                    var13.put(var3 + "," + var4, (JSONObject)var7.get(var37));
-                    ArrayList var39 = new ArrayList();
-                    var39.add(var3);
-                    var39.add(var4);
-                    var14.put(var3, var39);
-                }
-            }
-
-            var35 = "";
-            var37 = var2.getString("style");
-            if (oConvertUtils.isNotEmpty(var37)) {
-                JSONObject var40 = (JSONObject)var7.get(var37);
-                if (var40.containsKey("format")) {
-                    var35 = var40.getString("format");
-                }
-            }
-
-            if (oConvertUtils.isNotEmpty(var35) && oConvertUtils.isNotEmpty(var18) && ExcelUtil.isHave(JmConst.NUMBER_FUNCTION, var35)) {
-                DataFormat var42 = var1.createDataFormat();
-                CellStyle var43 = (CellStyle)var12.get(var37);
-                String var44 = "0.00";
-                Object var45 = var2.get("decimalPlaces");
-                if (oConvertUtils.isNotEmpty(var45) && "number".equals(var35)) {
-                    Integer var26 = Integer.valueOf(var45.toString());
-                    if (var26 <= 0) {
-                        var44 = "0";
-                    } else {
-                        String var27 = "0.";
-
-                        for(int var28 = 0; var28 < var26; ++var28) {
-                            var27 = var27 + "0";
-                        }
-
-                        var44 = var27;
-                    }
-
-                    var43.setDataFormat(var42.getFormat(var44));
-                    var6.setCellStyle(var43);
-                }
-
-                var6.setCellValue(Double.parseDouble(var18));
-                return;
-            }
-
-            var6.setCellValue(oConvertUtils.isNotEmpty(var34) ? var34 : var18);
-        }
-    }
-    private void a7(XSSFWorkbook var1, JSONObject var2, Map var3, XSSFSheet var4, Map<String, String> var5, Map<String, JSONObject> var6, Map<String, List<String>> var7, List<Map<String, Object>> var8, Map<String, Object> var9, Map<String, Object> var10, Map<String, String> var11, Integer var12, Map<String, CellStyle> var13) {
-        var2 = this.b1(var2);
-        Iterator var14 = var2.keySet().iterator();
-        boolean var15 = true;
-
-        while(true) {
-            String var16;
-            int var17;
-            do {
-                do {
-                    do {
-                        do {
-                            if (!var14.hasNext()) {
-                                return;
-                            }
-
-                            var16 = (String)var14.next();
-                        } while("cells".equals(var16));
-                    } while("isDrag".equals(var16));
-                } while("len".equals(var16));
-
-                var17 = Integer.parseInt(var16);
-            } while(var17 < 0);
-
-            XSSFRow var18 = var4.createRow(Integer.parseInt(var16));
-            if (var2.getJSONObject(var16).containsKey("height")) {
-                Integer var19 = var2.getJSONObject(var16).getInteger("height");
-                var18.setHeightInPoints((float)var19 - 9.5F);
-            }
-
-            JSONObject var25 = var2.getJSONObject(var16).getJSONObject("cells");
-            var25 = this.b1(var25);
-            Iterator var20 = var25.keySet().iterator();
-
-            while(var20.hasNext()) {
-                String var21 = (String)var20.next();
-                if (!"-1".equals(var21)) {
-                    JSONObject var22 = var25.getJSONObject(var21);
-                    XSSFCell var23 = var18.createCell(Integer.parseInt(var21));
-                    if (var22.containsKey("style")) {
-                        String var24 = var22.getString("style");
-                        var23.setCellStyle((CellStyle)var13.get(var24));
-                    }
-
-                    this.a6(var1, var22, var16, var21, var4, var23, var3, var11, var8, var5, var9, var13, var6, var7, var18, var10);
-                }
-            }
-        }
-    }
-
-    public String a8(JSONObject var1, Map var2, String var3) throws Exception {
-        String var4 = var1.getString("style");
-        JSONObject var5 = (JSONObject)var2.get(var4);
-        if (null != var5 && var4 != null && !"null".equals(var4)) {
-            Object var6 = var5.get("format");
-            if (null != var6) {
-                SimpleDateFormat var7 = ExcelUtil.getFormat(var6.toString());
-                if (null != var7 && oConvertUtils.isNotEmpty(var3)) {
-                    SimpleDateFormat var8 = ExcelUtil.getDataFormat(var3);
-                    if (null != var8) {
-                        Date var9 = var8.parse(var3);
-
-                        try {
-                            String var10 = var7.format(var9);
-                            a.info("日期格式化之后的文本:" + var10);
-                            return var10;
-                        } catch (Exception var11) {
-                            a.info("日期格式不正确:" + var11.getMessage());
-                        }
-                    } else {
-                        String var12 = d.a(var3, var7);
-                        if (oConvertUtils.isNotEmpty(var12)) {
-                            return var12;
-                        }
-                    }
-                }
-            }
-        }
-
-        return "";
-    }
-
-    public static String a9(String var0, String var1, String var2) {
-        int var3 = var0.indexOf(var1);
-        int var4 = var0.indexOf(var2);
-        if (var3 < 0) {
-            return "";
-        } else if (var4 < 0) {
-            return "";
-        } else {
-            String var5 = var0.substring(var3, var4).substring(var1.length());
-            return var5;
-        }
-    }
-
-    private void a10(JSONObject var1, Sheet var2, SXSSFWorkbook var3, Map var4, Map<String, String> var5, Map<String, JSONObject> var6) {
-        Iterator var7 = var1.keySet().iterator();
-
-        while(true) {
-            String var8;
-            JSONObject var9;
-            do {
-                do {
-                    do {
-                        do {
-                            if (!var7.hasNext()) {
-                                return;
-                            }
-
-                            var8 = (String)var7.next();
-                        } while("len".equals(var8));
-                    } while("cells".equals(var8));
-                } while("isDrag".equals(var8));
-
-                var9 = var1.getJSONObject(var8).getJSONObject("cells");
-            } while(null == var9);
-
-            Iterator var10 = var9.keySet().iterator();
-
-            while(var10.hasNext()) {
-                String var11 = (String)var10.next();
-                JSONObject var12 = var9.getJSONObject(var11);
-                if (var12.containsKey("merge")) {
-                    String var13 = var12.getString("merge");
-                    String[] var14 = a9(var13, "[", "]").split(",");
-                    int var15 = Integer.parseInt(var14[0]);
-                    int var16 = Integer.parseInt(var14[1]);
-                    if (var13 != null && !"".equals(var13)) {
-                        JSONObject var17 = new JSONObject();
-                        int var18 = Integer.parseInt(var8);
-                        int var19 = var15 + var18;
-                        int var20 = Integer.parseInt(var11);
-                        int var21 = var16 + var20;
-                        CellRangeAddress var22 = new CellRangeAddress(var18, var19, var20, var21);
-                        if (var12.containsKey("style")) {
-                            String var23 = var12.getString("style");
-                            JSONObject var24 = (JSONObject)var4.get(var23);
-                            if (null != var24 && var24.containsKey("border")) {
-                                JSONObject var25 = var24.getJSONObject("border");
-                                Iterator var26 = var25.keySet().iterator();
-                                JSONArray var27 = var25.getJSONArray("right");
-                                JSONArray var28 = var25.getJSONArray("top");
-                                if (null != var28 && var28.size() > 1) {
-                                    RegionUtil.setBorderTop(BorderStyle.THIN, var22, var2);
-                                    var17.put("top", var28.get(1).toString());
-                                }
-
-                                if (null != var27 && var27.size() > 1) {
-                                    RegionUtil.setBorderRight(BorderStyle.THIN, var22, var2);
-                                    var17.put("right", var27.get(1).toString());
-                                }
-
-                                JSONArray var29 = var25.getJSONArray("left");
-                                if (null != var29 && var29.size() > 1) {
-                                    RegionUtil.setBorderLeft(BorderStyle.THIN, var22, var2);
-                                    var17.put("left", var29.get(1).toString());
-                                }
-
-                                JSONArray var30 = var25.getJSONArray("bottom");
-                                if (null != var30 && var30.size() > 1) {
-                                    RegionUtil.setBorderBottom(BorderStyle.THIN, var22, var2);
-                                    var17.put("bottom", var30.get(1).toString());
-                                }
-                            }
-
-                            String var31 = var18 + "," + var19 + "," + var20 + "," + var21;
-                            var6.put(var31, var17);
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    private void a11(Sheet var1, SXSSFWorkbook var2, Map<String, JSONObject> var3) {
-        Iterator var4 = var3.keySet().iterator();
-
-        while(true) {
-            JSONObject var6;
-            String[] var7;
-            do {
-                if (!var4.hasNext()) {
-                    return;
-                }
-
-                String var5 = (String)var4.next();
-                var6 = JSONObject.parseObject(String.valueOf(var3.get(var5)));
-                var7 = var5.split(",");
-            } while(var7.length != 4);
-
-            int var8 = Integer.valueOf(var7[0]);
-            int var9 = Integer.valueOf(var7[1]);
-            int var10 = Integer.valueOf(var7[2]);
-            int var11 = Integer.valueOf(var7[3]);
-
-            for(int var12 = var8; var12 < var9 + 1; ++var12) {
-                Row var13 = var1.getRow(var12);
-
-                for(int var14 = var10; var14 < var11 + 1; ++var14) {
-                    try {
-                        Cell var15 = var13.getCell(var14);
-                        if (null != var15) {
-                            XSSFCellStyle var16 = (XSSFCellStyle)var15.getCellStyle();
-                            Object var17 = var6.get("top");
-                            Object var18 = var6.get("left");
-                            Object var19 = var6.get("right");
-                            Object var20 = var6.get("bottom");
-                            XSSFColor var21;
-                            if (null != var17) {
-                                var21 = this.b(var17.toString());
-                                var16.setTopBorderColor(var21);
-                            }
-
-                            if (null != var18) {
-                                var21 = this.b(var18.toString());
-                                var16.setLeftBorderColor(var21);
-                            }
-
-                            if (null != var19) {
-                                var21 = this.b(var19.toString());
-                                var16.setRightBorderColor(var21);
-                            }
-
-                            if (null != var20) {
-                                var21 = this.b(var20.toString());
-                                var16.setBottomBorderColor(var21);
-                            }
-
-                            var15.setCellStyle(var16);
-                        }
-                    } catch (NullPointerException var22) {
-                        a.debug("单元格为空", var22.getMessage());
-                    }
-                }
-            }
-        }
-    }
-
-    private void a12(Workbook var1, Sheet var2, Map<String, String> var3, Map<String, String> var4, Map<String, JSONObject> var5, Map<String, List<String>> var6) {
-        Set var7 = var6.keySet();
-        Iterator var8 = var7.iterator();
-
-        while(true) {
-            String var11;
-            String var12;
-            Cell var13;
-            String var14;
-            String var15;
-            String var16;
-            JSONObject var17;
-            Row var18;
-            int var19;
-            int var20;
-            do {
-                do {
-                    if (!var8.hasNext()) {
-                        return;
-                    }
-
-                    String var9 = (String)var8.next();
-                    List var10 = (List)var6.get(var9);
-                    var11 = (String)var10.get(0);
-                    var12 = (String)var10.get(1);
-                    var13 = var2.getRow(Integer.parseInt(var11)).getCell(Integer.parseInt(var12));
-                    var14 = ExcelUtil.getCellValueByCell(var13);
-                } while(!var14.contains("|"));
-
-                var15 = (String)var3.get(var13.getRowIndex() + "," + var13.getColumnIndex());
-                var16 = (String)var4.get(var13.getRowIndex() + "," + var13.getColumnIndex());
-                var17 = (JSONObject)var5.get(var13.getRowIndex() + "," + var13.getColumnIndex());
-                var18 = var2.getRow(Integer.parseInt(var11));
-                var19 = (int)var13.getSheet().getColumnWidthInPixels(var13.getColumnIndex());
-                var20 = (int)var18.getHeightInPoints();
-            } while(!oConvertUtils.isNotEmpty(var15));
-
-            int var21 = 0;
-            int var22 = 0;
-            int var23 = Integer.parseInt(var11);
-            int var24 = Integer.parseInt(var12);
-            if (oConvertUtils.isNotEmpty(var16)) {
-                String[] var25 = var16.split(",");
-                int var26 = Integer.parseInt(var25[0]);
-                int var27 = Integer.parseInt(var25[1]);
-                var23 = var26;
-                var24 = var27;
-
-                int var28;
-                for(var28 = var18.getRowNum() + 1; var28 < var26 + 1; ++var28) {
-                    Row var29 = var2.getRow(var28);
-                    if (var29 != null) {
-                        var22 += (int)var2.getRow(var28).getHeightInPoints();
-                    }
-                }
-
-                for(var28 = var13.getColumnIndex() + 1; var28 < var27 + 1; ++var28) {
-                    var21 += (int)var2.getColumnWidthInPixels(var28);
-                }
-            }
-
-            var19 += var21;
-            var20 += var22;
-            var13.setCellValue("");
-            if (var2 instanceof SXSSFSheet) {
-                try {
-                    byte[] var32 = ExcelUtil.getImage(var14, var15, var19, var20, var17);
-                    Drawing var33 = var2.createDrawingPatriarch();
-                    XSSFClientAnchor var34 = new XSSFClientAnchor(12700, 12700, -12700, -12700, Integer.parseInt(var12), Integer.parseInt(var11), var24 + 1, var23 + 1);
-                    var34.setAnchorType(ClientAnchor.AnchorType.MOVE_AND_RESIZE);
-                    var33.createPicture(var34, var1.addPicture(var32, 5));
-                } catch (IOException var31) {
-                    var31.printStackTrace();
-                }
-            }
-
-            if (var2 instanceof XSSFSheet) {
-                try {
-                    a13(var14, var1, var2, var19, var20, var15, Integer.parseInt(var11), Integer.parseInt(var12), var23 + 1, var24 + 1, var17);
-                } catch (Exception var30) {
-                    var30.printStackTrace();
-                }
-            }
-        }
-    }
-
-    public static void a13(String var0, Workbook var1, Sheet var2, int var3, int var4, String var5, int var6, int var7, int var8, int var9, JSONObject var10) {
-        String[] var11 = var0.split("\\|");
-        int var12 = var11.length;
-        Cell var13 = var2.getRow(var6).getCell(var7);
-        CellStyle var14 = var13.getCellStyle();
-        var14.setWrapText(true);
-        Font var15 = var1.getFontAt(var14.getFontIndex());
-        var15.setFontName("Microsoft YaHei");
-        var15.setFontHeightInPoints((short)10);
-        CreationHelper var16 = var1.getCreationHelper();
-        String var17 = "";
-        if (null != var10 && var10.containsKey("color")) {
-            var17 = var10.getString("color");
-        }
-
-        String var18;
-        if (var5.equals("lefttop")) {
-            var18 = a14(var11, var3, var4);
-            var13.setCellValue(var18);
-            Drawing var19 = var2.createDrawingPatriarch();
-            if (var11.length == 2) {
-                ExcelUtil.paintLine(var19, var19.createAnchor(0, 0, 0, 0, var7, var6, var9, var8), var5, var17);
-            } else if (var11.length == 3) {
-                ExcelUtil.paintLine(var19, var19.createAnchor(0, 0, 0, -((int)((double)var4 / 2.5D)) * 12700, var7, var6, var9, var8), var5, var17);
-                ExcelUtil.paintLine(var19, var19.createAnchor(0, 0, -var3 / 4 * 12700, 0, var7, var6, var9, var8), var5, var17);
-            }
-        } else {
-            var18 = b2(var11, var3, var4);
-            var13.setCellValue(var18);
-            a15(var2, var16, var7, var6, var9, var8, var4, var3, var12 - 1, var5, var17);
-        }
-
-        var14.setFont(var15);
-        var13.setCellStyle(var14);
-    }
-
-    public static void a15(Sheet var0, CreationHelper var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, String var9, String var10) {
-        Drawing var11;
-        ClientAnchor var12;
-        if (var8 == 1) {
-            var11 = var0.createDrawingPatriarch();
-            var12 = var1.createClientAnchor();
-            var12.setCol1(var2);
-            var12.setRow1(var3);
-            var12.setCol2(var4);
-            var12.setRow2(var5);
-            ExcelUtil.paintLine(var11, var12, var9, var10);
-        } else if (var8 == 2) {
-            var11 = var0.createDrawingPatriarch();
-            var12 = var1.createClientAnchor();
-            var12.setCol1(var2);
-            var12.setRow1(var3);
-            var12.setCol2(var4);
-            var12.setRow2(var5);
-            var12.setDx2(-var7 / 4 * 12700);
-            ExcelUtil.paintLine(var11, var12, var9, var10);
-            ClientAnchor var13 = var1.createClientAnchor();
-            Drawing var14 = var0.createDrawingPatriarch();
-            var13.setCol1(var2);
-            var13.setRow1(var3);
-            var13.setCol2(var4);
-            var13.setRow2(var5);
-            var13.setDy1((int)((double)var6 / 2.5D) * 12700);
-            ExcelUtil.paintLine(var14, var13, var9, var10);
-        }
-
-    }
-
-    public static String b2(String[] var0, int var1, int var2) {
-        int var3 = var0.length;
-        if (var3 < 1 && var3 > 3) {
-            return "";
-        } else {
-            int var4 = var1 / 4;
-            if (var3 == 2) {
-                var4 -= var0[1].length();
-                if (var1 < 240) {
-                    if (var0[1].length() > 3) {
-                        var4 -= var0[1].length();
-                    }
-
-                    var4 -= var0[1].length();
-                }
-            } else {
-                if (var1 < 240) {
-                    if (var0[2].length() > 3) {
-                        var4 -= var0[2].length();
-                    }
-
-                    var4 -= var0[2].length();
-                }
-
-                var4 -= var0[2].length();
-            }
-
-            String var5 = "";
-            int var6 = var2 / 20;
-            var5 = var5 + var0[0];
-            int var7;
-            if (var3 == 2) {
-                for(var7 = 0; var7 < var6; ++var7) {
-                    var5 = var5 + "\n";
-                }
-
-                for(var7 = 0; var7 < var4; ++var7) {
-                    var5 = var5 + " ";
-                }
-
-                var5 = var5 + var0[1];
-            }
-
-            if (var3 == 3) {
-                var7 = var1 / 4;
-                var7 = var7 - var0[0].length() * 2 - var0[1].length() * 2;
-                if (var1 < 150) {
-                    var7 = var7 - var0[0].length() * 2 - var0[1].length() * 2;
-                }
-
-                if (var0[1].length() > 2) {
-                    if (var1 < 260) {
-                        var7 -= var0[1].length();
-                    }
-
-                    var7 -= var0[1].length();
-                }
-
-                if (var0[0].length() > 3) {
-                    var7 -= var0[0].length();
-                }
-
-                String var8 = " ";
-
-                int var9;
-                for(var9 = 0; var9 < var7; ++var9) {
-                    var8 = var8 + " ";
-                }
-
-                var5 = var5 + var8 + var0[1];
-
-                for(var9 = 0; var9 < var6; ++var9) {
-                    var5 = var5 + "\n";
-                }
-
-                for(var9 = 0; var9 < var7; ++var9) {
-                    var5 = var5 + " ";
-                }
-
-                var5 = var5 + var0[2];
-            }
-
-            return var5;
-        }
-    }
-
-    public static String a14(String[] var0, int var1, int var2) {
-        int var3 = var0.length;
-        if (var3 < 1 && var3 > 3) {
-            return "";
-        } else {
-            int var4 = var1 / 4;
-            if (var3 == 2) {
-                var4 -= var0[1].length();
-                if (var1 < 150) {
-                    var4 -= var0[1].length() * 3;
-                }
-            } else {
-                if (var1 < 186) {
-                    var4 -= var0[2].length();
-                }
-
-                if (var1 < 160) {
-                    if (var0[2].length() == 2) {
-                        var4 -= var0[2].length() * 2;
-                    } else if (var0[2].length() > 2) {
-                        var4 -= var0[2].length();
-                    }
-                }
-
-                var4 -= var0[2].length();
-                if (var0[2].length() > 3) {
-                    var4 -= var0[2].length();
-                }
-            }
-
-            String var5 = "";
-
-            int var6;
-            for(var6 = 0; var6 < var4; ++var6) {
-                var5 = var5 + " ";
-            }
-
-            var6 = var2 / 20;
-            if (var3 == 2) {
-                var5 = var5 + var0[1];
-            } else {
-                var5 = var5 + var0[2];
-            }
-
-            int var7;
-            for(var7 = 0; var7 < var6; ++var7) {
-                var5 = var5 + "\n";
-            }
-
-            if (var3 == 2) {
-                var5 = var5 + var0[0];
-            }
-
-            if (var3 == 3) {
-                var5 = var5 + var0[0];
-                var7 = var1 / 4;
-                if (var1 < 270) {
-                    var7 = var7 - var0[0].length() * 2 - var0[1].length() * 2;
-                }
-
-                if (var1 < 160) {
-                    var7 = var7 - var0[0].length() - var0[1].length();
-                }
-
-                var7 = var7 - var0[0].length() - var0[1].length();
-                if (var0[0].length() > 3) {
-                    var7 -= var0[0].length();
-                }
-
-                if (var0[1].length() > 3) {
-                    if (var1 > 270) {
-                        var7 -= var0[1].length() * 2;
-                    } else {
-                        var7 -= var0[1].length();
-                    }
-                }
-
-                String var8 = "";
-
-                for(int var9 = 0; var9 < var7; ++var9) {
-                    var8 = var8 + " ";
-                }
-
-                var5 = var5 + var8 + var0[1];
-            }
-
-            return var5;
-        }
-    }
-
-    private void a16(Sheet var1, XSSFWorkbook var2, JSONArray var3, Map<String, String> var4, Map<String, Object> var5) {
-        Drawing var6 = var1.createDrawingPatriarch();
-        HttpURLConnection var7 = null;
-
-        try {
-            for(int var9 = 0; var9 < var3.size(); ++var9) {
-                boolean var10 = false;
-                boolean var11 = false;
-                String var12 = "";
-                String var13 = "";
-                String var14 = "";
-                JSONObject var15 = var3.getJSONObject(var9);
-                int var37 = Integer.valueOf(var15.getString("col"));
-                int var36 = Integer.valueOf(var15.getString("row"));
-                var13 = (String)var15.get("width");
-                var14 = (String)var15.get("height");
-                var12 = (String)var15.get("src");
-                String var16 = var15.getString("layer_id");
-                Object var17 = var15.get("colspan");
-                Object var18 = var15.get("rowspan");
-                Object var19 = var5.get(var16);
-                if (null != var19) {
-                    String[] var20 = String.valueOf(var19).split(",");
-                    var36 = Integer.parseInt(var20[0]);
-                    var37 = Integer.parseInt(var20[1]);
-                }
-
-                if (var14.contains("px") && var13.contains("px")) {
-                    var14 = var14.substring(0, var14.lastIndexOf("px"));
-                    var13 = var13.substring(0, var13.lastIndexOf("px"));
-                }
-
-                byte[] var8;
-                if (var12.contains("http")) {
-                    URL var38 = new URL(var12);
-                    if (var12.contains("https")) {
-                        var8 = b.a(var12);
-                    } else {
-                        var7 = (HttpURLConnection)var38.openConnection();
-                        var7.setRequestMethod("GET");
-                        var7.setConnectTimeout(50000);
-                        InputStream var21 = var7.getInputStream();
-                        var8 = a21(var21);
-                    }
-                } else {
-                    var8 = this.c1(var12);
-                }
-
-                boolean var39 = false;
-                String var41 = (String)var4.get(var36 + "," + var37);
-                boolean var22 = false;
-                int var40;
-                int var42;
-                if (null != var17 && null != var18) {
-                    var42 = var36 + Integer.parseInt(var18.toString());
-                    var40 = var37 + Integer.parseInt(var17.toString());
-                } else {
-                    if (oConvertUtils.isNotEmpty(var41)) {
-                        String var23 = var41.split(",")[0];
-                        var42 = Integer.parseInt(var23);
-                    } else {
-                        var42 = var36 + Integer.parseInt(String.format("%.0f", Float.parseFloat(var14) / 25.0F));
-                    }
-
-                    Integer var43 = this.a22(var1, var36, (float)Integer.parseInt(var14));
-                    if (var43 > 0) {
-                        var42 = var43;
-                    } else {
-                        var42 += var36;
-                    }
-
-                    var40 = Integer.parseInt(String.format("%.0f", Float.parseFloat(var13) / 100.0F));
-                    var40 += var37;
-                }
-
-                Object var44 = var15.get("isBackend");
-                if (null != var44 && (Boolean)var44) {
-                    int var45 = var2.addPicture(var8, 6);
-                    XSSFPictureData var25 = (XSSFPictureData)var2.getAllPictures().get(var45);
-
-                    try {
-                        for(int var26 = 0; var26 < var2.getNumberOfSheets(); ++var26) {
-                            XSSFSheet var46 = var2.getSheetAt(var26);
-                            PackagePartName var28 = var25.getPackagePart().getPartName();
-                            String var29 = XSSFRelation.IMAGES.getRelation();
-                            PackageRelationship var30 = var46.getPackagePart().addRelationship(var28, TargetMode.EXTERNAL, var29, (String)null);
-                            var46.getCTWorksheet().addNewPicture().setId(var30.getId());
-                        }
-                    } catch (Exception var31) {
-                        XSSFClientAnchor var27 = new XSSFClientAnchor(0, 0, Integer.parseInt(var13), Integer.parseInt(var14), var37, var36, var40, var42);
-                        var6.createPicture(var27, var2.addPicture(var8, 5));
-                    }
-                } else {
-                    XSSFClientAnchor var24 = new XSSFClientAnchor(0, 0, Integer.parseInt(var13), Integer.parseInt(var14), var37, var36, var40, var42);
-                    var6.createPicture(var24, var2.addPicture(var8, 5));
-                }
-            }
-        } catch (MalformedURLException var32) {
-            var32.printStackTrace();
-        } catch (ProtocolException var33) {
-            var33.printStackTrace();
-        } catch (IOException var34) {
-            var34.printStackTrace();
-        } catch (Exception var35) {
-            var35.printStackTrace();
-        }
-
-    }
-
-    private void a17(Sheet var1, SXSSFWorkbook var2, JSONArray var3, Map<String, Object> var4, JSONObject var5, JSONObject var6) {
-        Drawing var7 = var1.createDrawingPatriarch();
-        Object var8 = null;
-
-        try {
-            for(int var9 = 0; var9 < var3.size(); ++var9) {
-                boolean var10 = false;
-                boolean var11 = false;
-                String var12 = "";
-                String var13 = "";
-                String var14 = "";
-                JSONObject var15 = var3.getJSONObject(var9);
-                int var33 = Integer.valueOf(var15.getString("col"));
-                int var32 = Integer.valueOf(var15.getString("row"));
-                var13 = (String)var15.get("width");
-                var14 = (String)var15.get("height");
-                var12 = (String)var15.get("url");
-                String var16 = var15.getString("layer_id");
-                Object var17 = var4.get(var16);
-                if (null != var17) {
-                    String[] var18 = String.valueOf(var17).split(",");
-                    var32 = Integer.parseInt(var18[0]);
-                    var33 = Integer.parseInt(var18[1]);
-                }
-
-                byte[] var34 = new byte[0];
-                var34 = oConvertUtils.decodeBase64(var12);
-                int var20 = 0;
-                float var21 = Float.parseFloat(var14);
-
-                for(int var22 = var32; var22 < var32 + 99; ++var22) {
-                    Row var23 = var1.getRow(var22);
-                    if (var23 == null) {
-                        break;
-                    }
-
-                    ++var20;
-                    var21 -= var23.getHeightInPoints();
-                }
-
-                Object var35 = var15.get("colspan");
-                Object var36 = var15.get("rowspan");
-                boolean var24 = false;
-                int var37;
-                if (null != var35 && null != var36) {
-                    var20 = var32 + Integer.parseInt(var36.toString());
-                    var37 = var33 + Integer.parseInt(var35.toString());
-                } else {
-                    var20 += Integer.parseInt(String.format("%.0f", var21 / 25.0F));
-                    var37 = Integer.parseInt(String.format("%.0f", Float.parseFloat(var13) / 100.0F));
-                    var37 += var33;
-                }
-
-                int var25 = 0;
-
-                int var26;
-                for(var26 = var33; var26 < var37; ++var26) {
-                    Object var27 = var5.get(var26);
-                    if (oConvertUtils.isNotEmpty(var27)) {
-                        JSONObject var28 = (JSONObject)var27;
-                        Object var29 = var28.get("width");
-                        var25 += Integer.valueOf(String.valueOf(var29));
-                    } else {
-                        var25 += 100;
-                    }
-                }
-
-                if (var25 > Integer.parseInt(var13)) {
-                    var25 -= Integer.parseInt(var13);
-                } else {
-                    var25 = 0;
-                }
-
-                var25 = var25 * 3 / 4;
-                var26 = 0;
-
-                for(int var38 = var32; var38 < var20; ++var38) {
-                    Object var40 = var6.get(var38);
-                    if (oConvertUtils.isNotEmpty(var40)) {
-                        JSONObject var41 = (JSONObject)var40;
-                        Object var30 = var41.get("height");
-                        if (oConvertUtils.isNotEmpty(var30)) {
-                            var26 += Integer.parseInt(var30.toString());
-                        } else {
-                            var26 += 25;
-                        }
-                    } else {
-                        var26 += 25;
-                    }
-                }
-
-                if (var26 > Integer.parseInt(var14)) {
-                    var26 -= Integer.parseInt(var14);
-                } else {
-                    var26 = 0;
-                }
-
-                var26 = var26 * 3 / 4;
-                XSSFClientAnchor var39 = new XSSFClientAnchor(0, 0, 12700 * -var25, 12700 * -var26, var33, var32, var37, var20);
-                var7.createPicture(var39, var2.addPicture(var34, 5));
-            }
-        } catch (Exception var31) {
-            var31.printStackTrace();
-        }
-
-    }
-
-    private void a18(Sheet var1, Workbook var2, JSONArray var3, List var4, Map<String, Object> var5) {
-        Drawing var6 = var1.createDrawingPatriarch();
-
-        for(int var7 = 0; var7 < var3.size(); ++var7) {
-            JSONObject var8 = var3.getJSONObject(var7);
-            boolean var9 = false;
-            boolean var10 = false;
-            String var11 = "";
-            String var12 = "";
-            int var25 = Integer.valueOf(var8.getString("col"));
-            int var24 = Integer.valueOf(var8.getString("row"));
-            var11 = String.valueOf(var8.get("width"));
-            var12 = String.valueOf(var8.get("height"));
-            String var13 = (String)var8.get("layer_id");
-            String var14 = "";
-            Object var15 = var5.get(var13);
-            if (null != var15) {
-                String[] var16 = String.valueOf(var15).split(",");
-                var24 = Integer.parseInt(var16[0]);
-                var25 = Integer.parseInt(var16[1]);
-            }
-
-            Object var18;
-            for(int var26 = 0; var26 < var4.size(); ++var26) {
-                Map var17 = (Map)var4.get(var26);
-                var18 = var17.get("id");
-                if (var13.equals(var18.toString())) {
-                    var14 = (String)var17.get("base64");
-                }
-            }
-
-            byte[] var27 = new byte[0];
-            var27 = oConvertUtils.decodeBase64(var14.replace("data:image/png;base64,", ""));
-            var18 = var8.get("colspan");
-            Object var19 = var8.get("rowspan");
-            boolean var20 = false;
-            boolean var21 = false;
-            float var22 = Float.parseFloat(var12);
-            int var28;
-            int var29;
-            if (null != var18 && null != var19) {
-                var29 = var24 + Integer.parseInt(var19.toString());
-                var28 = var25 + Integer.parseInt(var18.toString());
-            } else {
-                var28 = var24 + Integer.parseInt(String.format("%.0f", Float.parseFloat(var12) / 25.0F));
-                var29 = Integer.parseInt(String.format("%.0f", Float.parseFloat(var11) / 100.0F));
-            }
-
-            XSSFClientAnchor var23 = new XSSFClientAnchor(0, 0, Integer.parseInt(var11), Integer.parseInt(var12), var25, var24, var28, var29);
-            var6.createPicture(var23, var2.addPicture(var27, 5));
-        }
-
-    }
-
-    private void a19(Sheet var1, XSSFWorkbook var2, JSONObject var3) {
-        Drawing var4 = var1.createDrawingPatriarch();
-        Object var5 = null;
-        String var6 = "";
-        String var7 = "";
-        String var8 = "";
-        Object var18 = var3.get("width");
-        Object var19 = var3.get("height");
-        var6 = var3.getString("path");
-        byte[] var9 = this.a20(var6);
-        XSSFPictureData var10 = null;
-        boolean var11 = false;
-
-        try {
-            int var20 = var2.addPicture(var9, 6);
-            var10 = (XSSFPictureData)var2.getAllPictures().get(var20);
-        } catch (NullPointerException var17) {
-            a.debug("数据为空", var17.getMessage());
-        }
-
-        if (var10 != null) {
-            for(int var12 = 0; var12 < var2.getNumberOfSheets(); ++var12) {
-                XSSFSheet var13 = var2.getSheetAt(var12);
-                PackagePartName var14 = var10.getPackagePart().getPartName();
-                String var15 = XSSFRelation.IMAGES.getRelation();
-                PackageRelationship var16 = var13.getPackagePart().addRelationship(var14, TargetMode.EXTERNAL, var15, (String)null);
-                var13.getCTWorksheet().addNewPicture().setId(var16.getId());
-            }
-        }
-
-    }
-
-    public byte[] a20(String var1) {
-        URL var2 = null;
-        Object var3 = null;
-        byte[] var7;
-        if (var1.contains("http")) {
-            try {
-                var2 = new URL(var1);
-                if (var1.contains("https")) {
-                    var7 = b.a(var1);
-                    return var7;
-                } else {
-                    HttpURLConnection var4 = null;
-                    var4 = (HttpURLConnection)var2.openConnection();
-                    var4.setRequestMethod("GET");
-                    var4.setConnectTimeout(50000);
-                    InputStream var5 = var4.getInputStream();
-                    var7 = a21(var5);
-                    return var7;
-                }
-            } catch (Exception var6) {
-                var6.printStackTrace();
-                return null;
-            }
-        } else {
-            var7 = this.c1(var1);
-            return var7;
-        }
-    }
-
-    private static byte[] a21(InputStream var0) throws Exception {
-        ByteArrayOutputStream var1 = new ByteArrayOutputStream();
-        byte[] var2 = new byte[1024];
-        boolean var3 = false;
-
-        int var4;
-        while((var4 = var0.read(var2)) != -1) {
-            var1.write(var2, 0, var4);
-        }
-
-        var0.close();
-        return var1.toByteArray();
-    }
-
-    private byte[] c1(String var1) {
-        File var2 = new File(this.jimuReportUploadConfig.getPath().getUpload() + File.separator + var1);
-
-        try {
-            byte[] var3 = Files.readAllBytes(var2.toPath());
-            return var3;
-        } catch (IOException var4) {
-            var4.printStackTrace();
-            return null;
-        }
-    }
-
-    public Integer a22(Sheet var1, Integer var2, float var3) {
-        int var4 = 0;
-        Double var5 = 0.0D;
-
-        for(Iterator var6 = var1.iterator(); var6.hasNext(); ++var4) {
-            Row var7 = (Row)var6.next();
-            if (var2 <= var4) {
-                var5 = var5 + (double)var7.getHeightInPoints();
-            }
-
-            if (var5 != 0.0D && (double)var3 - var5 <= 10.0D && var4 > 0) {
-                return var4;
-            }
-
-            if (var5 >= (double)var3 && var4 > 0) {
-                return var4;
-            }
-        }
-
-        return 0;
-    }
-}
-
+//package org.jeecg.modules.jmreport.common;
+//
+//import com.alibaba.fastjson.JSON;
+//import com.alibaba.fastjson.JSONArray;
+//import com.alibaba.fastjson.JSONObject;
+//import org.apache.commons.lang3.StringUtils;
+//import org.apache.poi.openxml4j.opc.PackagePartName;
+//import org.apache.poi.openxml4j.opc.PackageRelationship;
+//import org.apache.poi.openxml4j.opc.TargetMode;
+//import org.apache.poi.ss.usermodel.*;
+//import org.apache.poi.ss.util.CellRangeAddress;
+//import org.apache.poi.ss.util.CellReference;
+//import org.apache.poi.ss.util.RegionUtil;
+//import org.apache.poi.xssf.streaming.SXSSFCell;
+//import org.apache.poi.xssf.streaming.SXSSFRow;
+//import org.apache.poi.xssf.streaming.SXSSFSheet;
+//import org.apache.poi.xssf.streaming.SXSSFWorkbook;
+//import org.apache.poi.xssf.usermodel.*;
+//import org.jeecg.modules.jmreport.common.constant.CommonConstant;
+//import org.jeecg.modules.jmreport.common.constant.JmConst;
+//import org.jeecg.modules.jmreport.common.expetion.JimuReportException;
+//import org.jeecg.modules.jmreport.common.util.CommonUtils;
+//import org.jeecg.modules.jmreport.common.util.ExcelUtil;
+//import org.jeecg.modules.jmreport.common.util.GoogleBarCodeUtils;
+//import org.jeecg.modules.jmreport.common.util.oConvertUtils;
+//import org.jeecg.modules.jmreport.common.vo.JmDictModel;
+//import org.jeecg.modules.jmreport.common.vo.Result;
+//import org.jeecg.modules.jmreport.config.JmReportBaseConfig;
+//import org.jeecg.modules.jmreport.config.oss.JmReportUploadConfig;
+//import org.jeecg.modules.jmreport.desreport.dao.JimuReportDao;
+//import org.jeecg.modules.jmreport.desreport.dao.JimuReportDbDao;
+//import org.jeecg.modules.jmreport.desreport.dao.JimuReportDbFieldDao;
+//import org.jeecg.modules.jmreport.desreport.dao.JimuReportDbParamDao;
+//import org.jeecg.modules.jmreport.desreport.entity.JimuReport;
+//import org.jeecg.modules.jmreport.desreport.entity.JmReportDb;
+//import org.jeecg.modules.jmreport.desreport.entity.JmReportDbField;
+//import org.jeecg.modules.jmreport.desreport.entity.JmReportDbParam;
+//import org.jeecg.modules.jmreport.desreport.model.JmExpression;
+//import org.jeecg.modules.jmreport.desreport.model.RenderInfo;
+//import org.jeecg.modules.jmreport.desreport.model.ReportDbInfo;
+//import org.jeecg.modules.jmreport.desreport.render.utils.ExcelColumn;
+//import org.jeecg.modules.jmreport.desreport.render.utils.ReportUtil;
+//import org.jeecg.modules.jmreport.desreport.service.IJimuReportDictService;
+//import org.jeecg.modules.jmreport.desreport.service.IJmReportExportExcel;
+//import org.jeecg.modules.jmreport.desreport.service.a.e;
+//import org.jeecg.modules.jmreport.desreport.util.b;
+//import org.jeecg.modules.jmreport.desreport.util.d;
+//import org.jeecg.modules.jmreport.dyndb.JmreportDataSourceCachePool;
+//import org.jeecg.modules.jmreport.dyndb.JmreportDynamicDbUtil;
+//import org.jeecg.modules.jmreport.dyndb.util.JmreportSqlUtils;
+//import org.jeecg.modules.jmreport.dyndb.vo.JmreportDynamicDataSourceVo;
+//import org.jeecgframework.minidao.pojo.MiniDaoPage;
+//import org.jeecgframework.minidao.util.MiniDaoUtil;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Service;
+//import org.springframework.web.client.ResourceAccessException;
+//
+//import java.io.ByteArrayOutputStream;
+//import java.io.File;
+//import java.io.IOException;
+//import java.io.InputStream;
+//import java.net.HttpURLConnection;
+//import java.net.MalformedURLException;
+//import java.net.ProtocolException;
+//import java.net.URL;
+//import java.nio.file.Files;
+//import java.text.SimpleDateFormat;
+//import java.util.*;
+//import java.util.regex.Matcher;
+//import java.util.regex.Pattern;
+//import java.util.stream.Collectors;
+//
+//import static com.boman.common.core.utils.obj.ObjectUtils.*;
+//
+///**
+// * @author shiqian
+// * @date 2021年08月19日 15:17
+// **/
+//@Service
+//public class ExportExcelService {
+//    @Autowired
+//    private e jmReportDesignService;
+//    @Autowired
+//    private JmReportBaseConfig jmBaseConfig;
+//    @Autowired
+//    private JmReportUploadConfig jimuReportUploadConfig;
+//    @Autowired
+//    private JimuReportDao reportDao;
+//    @Autowired
+//    private JimuReportDbParamDao dbParamDao;
+//    @Autowired
+//    private JimuReportDbDao reportDbDao;
+//    @Autowired
+//    private JmreportDynamicDbUtil jmreportDynamicDbUtil;
+//    @Autowired
+//    private JimuReportDbFieldDao dbFieldDao;
+//    @Autowired
+//    private IJimuReportDictService dictService;
+//
+//    private static final Logger a = LoggerFactory.getLogger(ExportExcelService.class);
+//
+//    public Map<String, Object> exportEmptyExcel(String excelConfigId, JSONObject queryParam, List echartBase) {
+//        XSSFWorkbook var4 = new XSSFWorkbook();
+//        SXSSFWorkbook var5 = new SXSSFWorkbook(var4, -1, Boolean.FALSE, Boolean.TRUE);
+//        String var6 = "";
+//        HashMap var7 = new HashMap();
+//        XSSFCellStyle var8 = this.a1(var5);
+//        var7.put("generalStyle", var8);
+//        boolean var9 = true;
+//        new HashMap();
+//        int var11 = 1;
+//        Integer var12 = this.jmBaseConfig.getPageSizeNumber();
+//        if (null == queryParam || queryParam.size() == 0) {
+//            queryParam = new JSONObject();
+//        }
+//
+//        while(var9) {
+//            if (oConvertUtils.isEmpty(var12)) {
+//                var12 = 10000;
+//            }
+//
+//            if (oConvertUtils.isNotEmpty(var12) && "0".equals(String.valueOf(var12))) {
+//                var12 = 10000;
+//            }
+//
+//            queryParam.put("pageNo", var11);
+//            queryParam.put("pageSize", var12);
+//            Result var13 = this.jmReportDesignService.show(excelConfigId, queryParam.toJSONString());
+//            JimuReport var14 = (JimuReport)var13.getResult();
+//            JSONObject var15 = JSON.parseObject(var14.getJsonStr());
+//            JSONObject var16 = var15.getJSONObject("rows");
+//            if (var16.containsKey("-1")) {
+//                var16.remove("-1");
+//            }
+//
+//            if (var16.containsKey("len")) {
+//                var16.remove("len");
+//            }
+//
+//            if (var16.size() < var12) {
+//                var9 = false;
+//            }
+//
+//            if (var16.size() > var12) {
+//                var9 = false;
+//            }
+//
+//            var6 = var14.getName();
+//            JSONObject var17 = JSON.parseObject(var14.getJsonStr());
+//            this.a2((JSONObject)var17, (List)echartBase, (SXSSFWorkbook)var5, (XSSFWorkbook)var4, (Integer)var11, (Map)var7);
+//            ++var11;
+//        }
+//
+//        HashMap var18 = new HashMap();
+//        var18.put("name", var6 + ".xlsx");
+//        var18.put("workbook", var5);
+//        return var18;
+//    }
+//
+//    private XSSFCellStyle a1(SXSSFWorkbook var1) {
+//        XSSFCellStyle var2 = (XSSFCellStyle)var1.createCellStyle();
+//        XSSFFont var3 = (XSSFFont)var1.createFont();
+//        var3.setFontName("宋体");
+//        var2.setFont(var3);
+//        var2.setAlignment(HorizontalAlignment.CENTER);
+//        var2.setVerticalAlignment(VerticalAlignment.CENTER);
+//        return var2;
+//    }
+//
+//    private void a3(Sheet var1, JSONObject var2) {
+//        var1.setDefaultColumnWidth(12);
+//        Iterator var3 = var2.keySet().iterator();
+//
+//        while(var3.hasNext()) {
+//            String var4 = (String)var3.next();
+//            JSONObject var5 = (JSONObject)var2.get(var4);
+//            var1.setColumnWidth(Integer.parseInt(var4), 35 * (int)((double)var5.getInteger("width") + 0.8D));
+//        }
+//
+//    }
+//
+//    private SXSSFWorkbook a2(JSONObject var1, List var2, SXSSFWorkbook var3, XSSFWorkbook var4, Integer var5, Map<String, CellStyle> var6) {
+//        JSONArray var7 = null;
+//        JSONArray var8 = null;
+//        JSONArray var9 = null;
+//        JSONArray var10 = null;
+//        JSONObject var11 = null;
+//        if (var1.containsKey("imgList")) {
+//            var7 = var1.getJSONArray("imgList");
+//        }
+//
+//        if (var1.containsKey("chartList")) {
+//            var8 = var1.getJSONArray("chartList");
+//        }
+//
+//        if (var1.containsKey("barcodeList")) {
+//            var9 = var1.getJSONArray("barcodeList");
+//        }
+//
+//        if (var1.containsKey("qrcodeList")) {
+//            var10 = var1.getJSONArray("qrcodeList");
+//        }
+//
+//        if (var1.containsKey("background")) {
+//            Object var12 = var1.get("background");
+//            if (var12 instanceof JSONObject) {
+//                var11 = var1.getJSONObject("background");
+//            }
+//        }
+//
+//        JSONObject var13;
+//        String var14;
+//        if (var8 != null && var8.size() > 0 && var2.size() > 0) {
+//            for(int var31 = 0; var31 < var8.size(); ++var31) {
+//                var13 = var8.getJSONObject(var31);
+//                var14 = (String)var13.get("layer_id");
+//                List var15 = var2;
+//                String var16 = "";
+//
+//                for(int var17 = 0; var17 < var15.size(); ++var17) {
+//                    Map var18 = (Map)var15.get(var17);
+//                    if (((String)var18.get("id")).equals(var14)) {
+//                        var16 = (String)var18.get("base64");
+//                    }
+//                }
+//
+//                String[] var35 = var16.split("base64,");
+//                var13.put("url", var35[1]);
+//            }
+//        }
+//
+//        JSONObject var32 = var1.getJSONObject("rows");
+//        var13 = var1.getJSONObject("cols");
+//        if (var13.containsKey("len")) {
+//            var13.remove("len");
+//        }
+//
+//        if (var32.containsKey("-1")) {
+//            var32.remove("-1");
+//        }
+//
+//        var14 = var1.getString("name");
+//        Object var33 = var1.get("styles");
+//        HashMap var34 = new HashMap();
+//        int var37;
+//        if (var33 instanceof JSONArray) {
+//            JSONArray var36 = var1.getJSONArray("styles");
+//
+//            for(var37 = 0; var37 < var36.size(); ++var37) {
+//                var34.put(String.valueOf(var37), var36.get(var37));
+//            }
+//        }
+//
+//        if (var33 instanceof JSONObject) {
+//            JSONObject var38 = (JSONObject)var33;
+//
+//            for(var37 = 1; var37 <= var38.size(); ++var37) {
+//                var34.put(String.valueOf(var37), var38.get(var37));
+//            }
+//        }
+//
+//        Object var39 = null;
+//        String var40 = this.jmBaseConfig.getExportExcelPattern();
+//        if (oConvertUtils.isEmpty(var40) || "fast".equals(var40)) {
+//            var3.createSheet("sheet" + var5);
+//            var39 = var3.getSheetAt(var5 - 1);
+//        }
+//
+//        if ("primary".equals(var40)) {
+//            var4.createSheet("sheet" + var5);
+//            var39 = var4.getSheetAt(var5 - 1);
+//        }
+//
+//        this.a3((Sheet)var39, var13);
+//        ((Sheet)var39).setDefaultRowHeightInPoints(19.5F);
+//        HashMap var19 = new HashMap();
+//        HashMap var20 = new HashMap();
+//        HashMap var21 = new HashMap();
+//        ArrayList var22 = new ArrayList();
+//        HashMap var23 = new HashMap();
+//        Map var24 = this.a4(var32);
+//        HashMap var25 = new HashMap();
+//        long var26 = System.currentTimeMillis();
+//        HashMap var28 = new HashMap();
+//        this.a5((Map)var34, (Workbook)var3, (Map)var6);
+//        if (var39 instanceof SXSSFSheet) {
+//            this.a5((SXSSFWorkbook)var3, var32, var34, (SXSSFSheet)((SXSSFSheet)var39), var19, var20, var21, var22, var24, var25, var28, var5, var6);
+//        }
+//
+//        if (var39 instanceof XSSFSheet) {
+//            this.a7((XSSFWorkbook)var4, var32, var34, (XSSFSheet)((XSSFSheet)var39), var19, var20, var21, var22, var24, var25, var28, var5, var6);
+//        }
+//
+//        long var29 = System.currentTimeMillis();
+//        a.info("循环数据运行时间:" + (var29 - var26) + "ms");
+//        if (var32.size() < this.jmBaseConfig.excelStyleRow && var5 == 1 || var39 instanceof XSSFSheet) {
+//            this.a10((JSONObject)var32, (Sheet)var39, (SXSSFWorkbook)var3, (Map)var34, (Map)var28, (Map)var23);
+//            this.a11((Sheet)var39, (SXSSFWorkbook)var3, (Map)var23);
+//        }
+//
+//        this.a12((Workbook)var3, (Sheet)var39, (Map)var19, (Map)var28, (Map)var20, (Map)var21);
+//        if (var7 != null) {
+//            this.a16((Sheet)var39, (XSSFWorkbook)var4, (JSONArray)var7, (Map)var28, var25);
+//        }
+//
+//        if (var8 != null) {
+//            this.a17((Sheet)var39, (SXSSFWorkbook)var3, (JSONArray)var8, (Map)var25, (JSONObject)var13, (JSONObject)var32);
+//        }
+//
+//        if (var9 != null) {
+//            this.a18((Sheet)var39, (Workbook)var3, (JSONArray)var9, (List)var2, var25);
+//        }
+//
+//        if (var10 != null) {
+//            this.a18((Sheet)var39, (Workbook)var3, (JSONArray)var10, (List)var2, var25);
+//        }
+//
+//        if (var11 != null) {
+//            this.a19((Sheet)var39, (XSSFWorkbook)var4, (JSONObject)var11);
+//        }
+//
+//        if (null != var22 && var22.size() > 0) {
+//            this.a23((Sheet)var39, (SXSSFWorkbook)var3, (List)var22, (Map)var28, var25);
+//        }
+//
+//        return var3;
+//    }
+//
+//
+//    public Map<String, Integer> a24(Sheet var1, Map<String, String> var2, Integer var3, Integer var4) {
+//        HashMap var5 = new HashMap();
+//        String var6 = (String)var2.get(var3 + "," + var4);
+//        Row var7 = var1.getRow(var3);
+//        Cell var8 = var7.getCell(var4);
+//        var8.setCellValue("");
+//        int var9 = (int)var8.getSheet().getColumnWidthInPixels(var8.getColumnIndex());
+//        int var10 = (int)var7.getHeightInPoints();
+//        int var11 = 0;
+//        int var12 = 0;
+//        int var13 = var3;
+//        int var14 = var4;
+//        if (oConvertUtils.isNotEmpty(var6)) {
+//            String[] var15 = var6.split(",");
+//            int var16 = Integer.parseInt(var15[0]);
+//            int var17 = Integer.parseInt(var15[1]);
+//
+//            int var18;
+//            for(var18 = var7.getRowNum() + 1; var18 < var16 + 1; ++var18) {
+//                Row var19 = var1.getRow(var18);
+//                if (var19 != null) {
+//                    var12 += (int)var1.getRow(var18).getHeightInPoints();
+//                }
+//            }
+//
+//            for(var18 = var8.getColumnIndex() + 1; var18 < var17 + 1; ++var18) {
+//                var11 += (int)var1.getColumnWidthInPixels(var18);
+//            }
+//        }
+//
+//        var9 += var11;
+//        var10 += var12;
+//        var5.put("width", var9);
+//        var5.put("height", var10);
+//        return var5;
+//    }
+//
+//    private void a23(Sheet var1, SXSSFWorkbook var2, List<Map<String, Object>> var3, Map<String, String> var4, Map<String, Object> var5) {
+//        Drawing var6 = var1.createDrawingPatriarch();
+//
+//        for(int var7 = 0; var7 < var3.size(); ++var7) {
+//            Map var8 = (Map)var3.get(var7);
+//            boolean var9 = false;
+//            boolean var10 = false;
+//            int var23 = Integer.valueOf(var8.get("cell").toString());
+//            int var22 = Integer.valueOf(var8.get("row").toString());
+//            String var11 = var8.get("text").toString();
+//            String var12 = var8.get("display").toString();
+//            Map var13 = this.a24(var1, var4, var22, var23);
+//            Integer var14 = (Integer)var13.get("width");
+//            Integer var15 = (Integer)var13.get("height");
+//            Object var16 = null;
+//            String var17 = (String)var8.get("layer_id");
+//            Object var18 = var5.get(var17);
+//            if (null != var18) {
+//                String[] var19 = String.valueOf(var18).split(",");
+//                var22 = Integer.parseInt(var19[0]);
+//                var23 = Integer.parseInt(var19[1]);
+//            }
+//
+//            byte[] var24;
+//            if ("img".equals(var12)) {
+//                var24 = this.a20(var11);
+//            } else {
+//                var24 = GoogleBarCodeUtils.createCodeToFile(var11, var12, var14, var15);
+//            }
+//
+//            String var25 = (String)var4.get(var22 + "," + var23);
+//            if (oConvertUtils.isNotEmpty(var25)) {
+//                String[] var20 = var25.split(",");
+//                XSSFClientAnchor var21 = new XSSFClientAnchor(0, 0, var14, var15, var23, var22, Integer.parseInt(var20[1]) + 1, Integer.parseInt(var20[0]) + 1);
+//                var6.createPicture(var21, var2.addPicture(var24, 5));
+//            } else {
+//                XSSFClientAnchor var26 = new XSSFClientAnchor(0, 0, var14, var15, var23, var22, var23 + 1, var22 + 1);
+//                var6.createPicture(var26, var2.addPicture(var24, 5));
+//            }
+//        }
+//
+//    }
+//
+//    private Map<String, Object> a4(JSONObject var1) {
+//        HashMap var2 = new HashMap();
+//        Iterator var3 = var1.keySet().iterator();
+//
+//        label60:
+//        while(true) {
+//            String var4;
+//            int var5;
+//            do {
+//                do {
+//                    do {
+//                        do {
+//                            if (!var3.hasNext()) {
+//                                return var2;
+//                            }
+//
+//                            var4 = (String)var3.next();
+//                        } while("cells".equals(var4));
+//                    } while("isDrag".equals(var4));
+//                } while("len".equals(var4));
+//
+//                var5 = Integer.parseInt(var4);
+//            } while(var5 < 0);
+//
+//            JSONObject var6 = var1.getJSONObject(var4).getJSONObject("cells");
+//            var6 = this.b1(var6);
+//            Iterator var7 = var6.keySet().iterator();
+//
+//            while(true) {
+//                String var8;
+//                String var10;
+//                Matcher var13;
+//                do {
+//                    JSONObject var9;
+//                    do {
+//                        do {
+//                            if (!var7.hasNext()) {
+//                                continue label60;
+//                            }
+//
+//                            var8 = (String)var7.next();
+//                        } while("-1".equals(var8));
+//
+//                        var9 = var6.getJSONObject(var8);
+//                    } while(!var9.containsKey("text"));
+//
+//                    var10 = var9.getString("text");
+//                    String var11 = "^[=][A-Z]{1,2}[^\\u4e00-\\u9fa5]+$";
+//                    Pattern var12 = Pattern.compile(var11);
+//                    var13 = var12.matcher(var10);
+//                } while(!ExcelUtil.isHave(CommonConstant.JIMUREPORT_FUNCTION, var10) && !var13.matches());
+//
+//                var2.put(var4 + "," + var8, var10);
+//            }
+//        }
+//    }
+//    private void a5(Map<String, JSONObject> var1, Workbook var2, Map<String, CellStyle> var3) {
+//        Iterator var4 = var1.entrySet().iterator();
+//
+//        while(true) {
+//            Map.Entry var5;
+//            JSONObject var7;
+//            XSSFCellStyle var8;
+//            do {
+//                do {
+//                    do {
+//                        CellStyle var6;
+//                        do {
+//                            if (!var4.hasNext()) {
+//                                return;
+//                            }
+//
+//                            var5 = (Map.Entry)var4.next();
+//                            var6 = (CellStyle)var3.get(var5.getKey());
+//                        } while(null != var6);
+//
+//                        var7 = (JSONObject)var5.getValue();
+//                    } while(var7 == null);
+//                } while("null".equals(var7));
+//
+//                var8 = (XSSFCellStyle)var2.createCellStyle();
+//            } while(null == var7);
+//
+//            String var9;
+//            if (!var7.containsKey("align")) {
+//                var8.setAlignment(HorizontalAlignment.LEFT);
+//            } else {
+//                var9 = var7.getString("align").toUpperCase();
+//                var8.setAlignment(HorizontalAlignment.valueOf(var9));
+//            }
+//
+//            if (null != var7 && !var7.containsKey("valign")) {
+//                var8.setVerticalAlignment(VerticalAlignment.valueOf("center".toUpperCase()));
+//            } else {
+//                var9 = var7.getString("valign").toUpperCase();
+//                if ("MIDDLE".equals(var9)) {
+//                    var9 = "center".toUpperCase();
+//                }
+//
+//                var8.setVerticalAlignment(VerticalAlignment.valueOf(var9));
+//            }
+//
+//            if (null == var7 || var7.containsKey("bgcolor")) {
+//                var9 = var7.getString("bgcolor");
+//                XSSFColor var10 = new XSSFColor();
+//                if (var9.indexOf("#") != -1 && var9.length() > 6) {
+//                    String var11 = var9.replaceAll("#", "");
+//                    if (var11.length() == 6) {
+//                        byte[] var12 = new byte[]{(byte)Integer.parseInt(var11.substring(0, 2), 16), (byte)Integer.parseInt(var11.substring(2, 4), 16), (byte)Integer.parseInt(var11.substring(4, 6), 16)};
+//                        var10.setRGB(var12);
+//                    }
+//                }
+//
+//                var8.setFillForegroundColor(var10);
+//                var8.setFillBackgroundColor(var10);
+//                var8.setFillPattern(FillPatternType.BIG_SPOTS);
+//            }
+//
+//            XSSFColor var14;
+//            if (null != var7 && var7.containsKey("font") || var7.containsKey("underline") || var7.containsKey("strike") || var7.containsKey("color")) {
+//                XSSFFont var18 = (XSSFFont)var2.createFont();
+//                JSONObject var17 = (JSONObject)var7.get("font");
+//                Object var22 = var7.get("underline");
+//                Object var25 = var7.get("strike");
+//                if (null != var17) {
+//                    if (var17.containsKey("name")) {
+//                        var18.setFontName(var17.getString("name"));
+//                    }
+//
+//                    if (var17.containsKey("italic")) {
+//                        var18.setItalic(true);
+//                    }
+//
+//                    if (var17.containsKey("size")) {
+//                        var18.setFontHeightInPoints(var17.getShort("size"));
+//                    }
+//
+//                    if (var17.containsKey("bold")) {
+//                        boolean var13 = var17.getBoolean("bold");
+//                        var18.setBold(var13);
+//                    }
+//                }
+//
+//                if (null != var22) {
+//                    var18.setUnderline((byte)1);
+//                }
+//
+//                if (null != var25) {
+//                    var18.setStrikeout(true);
+//                }
+//
+//                if (null != var7 && var7.containsKey("color")) {
+//                    String var27 = var7.getString("color");
+//                    var14 = new XSSFColor();
+//                    if (var27.length() > 6) {
+//                        if (var27.contains("rgb")) {
+//                            var27 = var27.replace("rgb", "").replace("(", "").replace(")", "");
+//                            String[] var15 = var27.split(",");
+//                            if (var15.length == 3) {
+//                                byte[] var16 = new byte[]{(byte)Integer.parseInt(var15[0]), (byte)Integer.parseInt(var15[1]), (byte)Integer.parseInt(var15[2])};
+//                                var14.setRGB(var16);
+//                            }
+//                        } else if (var27.contains("#")) {
+//                            byte[] var29 = new byte[]{(byte)Integer.parseInt(var27.substring(1, 3), 16), (byte)Integer.parseInt(var27.substring(3, 5), 16), (byte)Integer.parseInt(var27.substring(5, 7), 16)};
+//                            var14.setRGB(var29);
+//                        }
+//                    }
+//
+//                    var18.setColor(var14);
+//                }
+//
+//                var8.setFont(var18);
+//            }
+//
+//            if (var7.containsKey("border")) {
+//                JSONObject var20 = var7.getJSONObject("border");
+//                JSONArray var19 = var20.getJSONArray("right");
+//                JSONArray var24 = var20.getJSONArray("top");
+//                JSONArray var26 = var20.getJSONArray("left");
+//                JSONArray var28 = var20.getJSONArray("bottom");
+//                if (null != var24 && var24.size() > 1) {
+//                    var8.setBorderTop(BorderStyle.THIN);
+//                    var14 = this.b(var24.get(1).toString());
+//                    var8.setTopBorderColor(var14);
+//                }
+//
+//                if (null != var28 && var28.size() > 1) {
+//                    var8.setBorderBottom(BorderStyle.THIN);
+//                    var14 = this.b(var28.get(1).toString());
+//                    var8.setBottomBorderColor(var14);
+//                }
+//
+//                if (null != var26 && var26.size() > 1) {
+//                    var8.setBorderLeft(BorderStyle.THIN);
+//                    var14 = this.b(var26.get(1).toString());
+//                    var8.setLeftBorderColor(var14);
+//                }
+//
+//                if (null != var19 && var19.size() > 1) {
+//                    var8.setBorderRight(BorderStyle.THIN);
+//                    var14 = this.b(var19.get(1).toString());
+//                    var8.setRightBorderColor(var14);
+//                }
+//            }
+//
+//            if (var7.containsKey("format")) {
+//                DataFormat var23 = var2.createDataFormat();
+//                String var21 = var7.getString("format");
+//                if ("percent".equals(var21)) {
+//                    var8.setDataFormat(var23.getFormat("0.00%"));
+//                }
+//
+//                if ("rmb".equals(var21)) {
+//                    var8.setDataFormat(var23.getFormat("¥#,##0"));
+//                }
+//
+//                if ("usd".equals(var21)) {
+//                    var8.setDataFormat(var23.getFormat("$#,##0"));
+//                }
+//
+//                if ("eur".equals(var21)) {
+//                    var8.setDataFormat(var23.getFormat("€#,##0"));
+//                }
+//            }
+//
+//            var8.setWrapText(true);
+//            var3.put(var5.getKey().toString(), var8);
+//        }
+//    }
+//
+//    public XSSFColor b(String var1) {
+//        XSSFColor var2 = new XSSFColor();
+//        if (var1.contains("rgb")) {
+//            var1 = var1.replace("rgb", "").replace("(", "").replace(")", "");
+//            String[] var3 = var1.split(",");
+//            if (var3.length == 3) {
+//                byte[] var4 = new byte[]{(byte)Integer.parseInt(var3[0]), (byte)Integer.parseInt(var3[1]), (byte)Integer.parseInt(var3[2])};
+//                var2.setRGB(var4);
+//            }
+//        } else if (var1.contains("#") && var1.length() > 6) {
+//            byte[] var5 = new byte[]{(byte)Integer.parseInt(var1.substring(1, 3), 16), (byte)Integer.parseInt(var1.substring(3, 5), 16), (byte)Integer.parseInt(var1.substring(5, 7), 16)};
+//            var2.setRGB(var5);
+//        }
+//
+//        return var2;
+//    }
+//
+//    private JSONObject b1(JSONObject var1) {
+//        ArrayList var2 = new ArrayList();
+//        Iterator var3 = var1.keySet().iterator();
+//
+//        while(var3.hasNext()) {
+//            String var4 = (String)var3.next();
+//            if (oConvertUtils.isNotEmpty(var4) && !"NaN".equals(var4) && !"len".equals(var4)) {
+//                var2.add(Integer.parseInt(var4));
+//            }
+//        }
+//
+//        Collections.sort(var2);
+//        JSONArray var9 = new JSONArray();
+//        JSONObject var5 = new JSONObject(true);
+//        Iterator var6 = var2.iterator();
+//
+//        while(var6.hasNext()) {
+//            Integer var7 = (Integer)var6.next();
+//            JSONObject var8 = var1.getJSONObject(String.valueOf(var7));
+//            var9.add(var8);
+//            var5.put(String.valueOf(var7), var8);
+//        }
+//
+//        return var5;
+//    }
+//
+//    private void a5(SXSSFWorkbook var1, JSONObject var2, Map var3, SXSSFSheet var4, Map<String, String> var5, Map<String, JSONObject> var6, Map<String, List<String>> var7, List<Map<String, Object>> var8, Map<String, Object> var9, Map<String, Object> var10, Map<String, String> var11, Integer var12, Map<String, CellStyle> var13) {
+//        var2 = this.b1(var2);
+//        Iterator var14 = var2.keySet().iterator();
+//
+//        while(true) {
+//            String var15;
+//            int var16;
+//            do {
+//                do {
+//                    do {
+//                        do {
+//                            if (!var14.hasNext()) {
+//                                return;
+//                            }
+//
+//                            var15 = (String)var14.next();
+//                        } while("cells".equals(var15));
+//                    } while("isDrag".equals(var15));
+//                } while("len".equals(var15));
+//
+//                var16 = Integer.parseInt(var15);
+//            } while(var16 < 0);
+//
+//            SXSSFRow var17 = var4.createRow(Integer.parseInt(var15));
+//            if (var2.getJSONObject(var15).containsKey("height")) {
+//                Integer var18 = var2.getJSONObject(var15).getInteger("height");
+//                var17.setHeightInPoints((float)var18 - 9.5F);
+//            }
+//
+//            JSONObject var24 = var2.getJSONObject(var15).getJSONObject("cells");
+//            var24 = this.b1(var24);
+//            Iterator var19 = var24.keySet().iterator();
+//
+//            while(var19.hasNext()) {
+//                String var20 = (String)var19.next();
+//                if (!"-1".equals(var20)) {
+//                    JSONObject var21 = var24.getJSONObject(var20);
+//                    SXSSFCell var22 = var17.createCell(Integer.parseInt(var20));
+//                    if (var21.containsKey("style") && var2.size() < this.jmBaseConfig.excelStyleRow && var12 == 1) {
+//                        String var23 = var21.getString("style");
+//                        var22.setCellStyle((CellStyle)var13.get(var23));
+//                    }
+//
+//                    if (var2.size() >= this.jmBaseConfig.excelStyleRow) {
+//                        var22.setCellStyle((CellStyle)var13.get("generalStyle"));
+//                    }
+//
+//                    this.a6(var1, var21, var15, var20, var4, var22, var3, var11, var8, var5, var9, var13, var6, var7, var17, var10);
+//                }
+//            }
+//        }
+//    }
+//
+//    private void a6(Workbook var1, JSONObject var2, String var3, String var4, Sheet var5, Cell var6, Map var7, Map var8, List var9, Map var10, Map var11, Map<String, CellStyle> var12, Map var13, Map var14, Row var15, Map var16) {
+//        String var17 = var2.getString("merge");
+//        String var18;
+//        if (var2.containsKey("virtual")) {
+//            var18 = var2.getString("virtual");
+//            if (var16.get(var18) == null) {
+//                var16.put(var18, var3 + "," + var4);
+//            }
+//        }
+//
+//        if (var17 != null && !"".equals(var17)) {
+//            String[] var32 = a9(var17, "[", "]").split(",");
+//            int var19 = Integer.parseInt(var32[0]);
+//            int var20 = Integer.parseInt(var32[1]);
+//            int var21 = Integer.parseInt(var3);
+//            int var22 = var19 + var21;
+//            int var23 = Integer.parseInt(var4);
+//            int var24 = var20 + var23;
+//            CellRangeAddress var25 = new CellRangeAddress(var21, var22, var23, var24);
+//
+//            try {
+//                var5.addMergedRegion(var25);
+//            } catch (IllegalStateException var30) {
+//                a.warn("单元格合并失败,原因重复单元格或者一个单元格不允许重复合并", var30.getMessage());
+//            } catch (IllegalArgumentException var31) {
+//                a.warn("单元格合并失败,原因重复单元格或者一个单元格不允许重复合并", var31.getMessage());
+//            }
+//
+//            var8.put(var21 + "," + var23, var22 + "," + var24);
+//        }
+//
+//        String var35;
+//        String var37;
+//        if (var2.containsKey("display")) {
+//            var18 = var2.getString("display");
+//            if ("barcode".equals(var18) || "qrcode".equals(var18) || "img".equals(var18)) {
+//                HashMap var33 = new HashMap();
+//                var35 = var2.getString("display");
+//                var37 = var2.getString("text");
+//                String var38 = var2.getString("style");
+//                String var41 = var2.getString("rendered");
+//                var33.put("style", (JSONObject)var7.get(var38));
+//                var33.put("text", var37);
+//                var33.put("display", var35);
+//                var33.put("row", var6.getRowIndex());
+//                var33.put("cell", var6.getColumnIndex());
+//                var33.put("layer_id", var41);
+//                var9.add(var33);
+//            }
+//        }
+//
+//        if (var2.containsKey("text")) {
+//            var18 = var2.getString("text");
+//            String var34 = "";
+//
+//            try {
+//                var34 = this.a8(var2, var7, var18);
+//            } catch (Exception var29) {
+//                var29.printStackTrace();
+//            }
+//
+//            if (var18.contains("|")) {
+//                Object var36 = var2.get("lineStart");
+//                if (null != var36) {
+//                    var10.put(var3 + "," + var4, var36.toString());
+//                    var37 = var2.getString("style");
+//                    var13.put(var3 + "," + var4, (JSONObject)var7.get(var37));
+//                    ArrayList var39 = new ArrayList();
+//                    var39.add(var3);
+//                    var39.add(var4);
+//                    var14.put(var3, var39);
+//                }
+//            }
+//
+//            var35 = "";
+//            var37 = var2.getString("style");
+//            if (oConvertUtils.isNotEmpty(var37)) {
+//                JSONObject var40 = (JSONObject)var7.get(var37);
+//                if (var40.containsKey("format")) {
+//                    var35 = var40.getString("format");
+//                }
+//            }
+//
+//            if (oConvertUtils.isNotEmpty(var35) && oConvertUtils.isNotEmpty(var18) && ExcelUtil.isHave(JmConst.NUMBER_FUNCTION, var35)) {
+//                DataFormat var42 = var1.createDataFormat();
+//                CellStyle var43 = (CellStyle)var12.get(var37);
+//                String var44 = "0.00";
+//                Object var45 = var2.get("decimalPlaces");
+//                if (oConvertUtils.isNotEmpty(var45) && "number".equals(var35)) {
+//                    Integer var26 = Integer.valueOf(var45.toString());
+//                    if (var26 <= 0) {
+//                        var44 = "0";
+//                    } else {
+//                        String var27 = "0.";
+//
+//                        for(int var28 = 0; var28 < var26; ++var28) {
+//                            var27 = var27 + "0";
+//                        }
+//
+//                        var44 = var27;
+//                    }
+//
+//                    var43.setDataFormat(var42.getFormat(var44));
+//                    var6.setCellStyle(var43);
+//                }
+//
+//                var6.setCellValue(Double.parseDouble(var18));
+//                return;
+//            }
+//
+//            var6.setCellValue(oConvertUtils.isNotEmpty(var34) ? var34 : var18);
+//        }
+//    }
+//    private void a7(XSSFWorkbook var1, JSONObject var2, Map var3, XSSFSheet var4, Map<String, String> var5, Map<String, JSONObject> var6, Map<String, List<String>> var7, List<Map<String, Object>> var8, Map<String, Object> var9, Map<String, Object> var10, Map<String, String> var11, Integer var12, Map<String, CellStyle> var13) {
+//        var2 = this.b1(var2);
+//        Iterator var14 = var2.keySet().iterator();
+//        boolean var15 = true;
+//
+//        while(true) {
+//            String var16;
+//            int var17;
+//            do {
+//                do {
+//                    do {
+//                        do {
+//                            if (!var14.hasNext()) {
+//                                return;
+//                            }
+//
+//                            var16 = (String)var14.next();
+//                        } while("cells".equals(var16));
+//                    } while("isDrag".equals(var16));
+//                } while("len".equals(var16));
+//
+//                var17 = Integer.parseInt(var16);
+//            } while(var17 < 0);
+//
+//            XSSFRow var18 = var4.createRow(Integer.parseInt(var16));
+//            if (var2.getJSONObject(var16).containsKey("height")) {
+//                Integer var19 = var2.getJSONObject(var16).getInteger("height");
+//                var18.setHeightInPoints((float)var19 - 9.5F);
+//            }
+//
+//            JSONObject var25 = var2.getJSONObject(var16).getJSONObject("cells");
+//            var25 = this.b1(var25);
+//            Iterator var20 = var25.keySet().iterator();
+//
+//            while(var20.hasNext()) {
+//                String var21 = (String)var20.next();
+//                if (!"-1".equals(var21)) {
+//                    JSONObject var22 = var25.getJSONObject(var21);
+//                    XSSFCell var23 = var18.createCell(Integer.parseInt(var21));
+//                    if (var22.containsKey("style")) {
+//                        String var24 = var22.getString("style");
+//                        var23.setCellStyle((CellStyle)var13.get(var24));
+//                    }
+//
+//                    this.a6(var1, var22, var16, var21, var4, var23, var3, var11, var8, var5, var9, var13, var6, var7, var18, var10);
+//                }
+//            }
+//        }
+//    }
+//
+//    public String a8(JSONObject var1, Map var2, String var3) throws Exception {
+//        String var4 = var1.getString("style");
+//        JSONObject var5 = (JSONObject)var2.get(var4);
+//        if (null != var5 && var4 != null && !"null".equals(var4)) {
+//            Object var6 = var5.get("format");
+//            if (null != var6) {
+//                SimpleDateFormat var7 = ExcelUtil.getFormat(var6.toString());
+//                if (null != var7 && oConvertUtils.isNotEmpty(var3)) {
+//                    SimpleDateFormat var8 = ExcelUtil.getDataFormat(var3);
+//                    if (null != var8) {
+//                        Date var9 = var8.parse(var3);
+//
+//                        try {
+//                            String var10 = var7.format(var9);
+//                            a.info("日期格式化之后的文本:" + var10);
+//                            return var10;
+//                        } catch (Exception var11) {
+//                            a.info("日期格式不正确:" + var11.getMessage());
+//                        }
+//                    } else {
+//                        String var12 = d.a(var3, var7);
+//                        if (oConvertUtils.isNotEmpty(var12)) {
+//                            return var12;
+//                        }
+//                    }
+//                }
+//            }
+//        }
+//
+//        return "";
+//    }
+//
+//    public static String a9(String var0, String var1, String var2) {
+//        int var3 = var0.indexOf(var1);
+//        int var4 = var0.indexOf(var2);
+//        if (var3 < 0) {
+//            return "";
+//        } else if (var4 < 0) {
+//            return "";
+//        } else {
+//            String var5 = var0.substring(var3, var4).substring(var1.length());
+//            return var5;
+//        }
+//    }
+//
+//    private void a10(JSONObject var1, Sheet var2, SXSSFWorkbook var3, Map var4, Map<String, String> var5, Map<String, JSONObject> var6) {
+//        Iterator var7 = var1.keySet().iterator();
+//
+//        while(true) {
+//            String var8;
+//            JSONObject var9;
+//            do {
+//                do {
+//                    do {
+//                        do {
+//                            if (!var7.hasNext()) {
+//                                return;
+//                            }
+//
+//                            var8 = (String)var7.next();
+//                        } while("len".equals(var8));
+//                    } while("cells".equals(var8));
+//                } while("isDrag".equals(var8));
+//
+//                var9 = var1.getJSONObject(var8).getJSONObject("cells");
+//            } while(null == var9);
+//
+//            Iterator var10 = var9.keySet().iterator();
+//
+//            while(var10.hasNext()) {
+//                String var11 = (String)var10.next();
+//                JSONObject var12 = var9.getJSONObject(var11);
+//                if (var12.containsKey("merge")) {
+//                    String var13 = var12.getString("merge");
+//                    String[] var14 = a9(var13, "[", "]").split(",");
+//                    int var15 = Integer.parseInt(var14[0]);
+//                    int var16 = Integer.parseInt(var14[1]);
+//                    if (var13 != null && !"".equals(var13)) {
+//                        JSONObject var17 = new JSONObject();
+//                        int var18 = Integer.parseInt(var8);
+//                        int var19 = var15 + var18;
+//                        int var20 = Integer.parseInt(var11);
+//                        int var21 = var16 + var20;
+//                        CellRangeAddress var22 = new CellRangeAddress(var18, var19, var20, var21);
+//                        if (var12.containsKey("style")) {
+//                            String var23 = var12.getString("style");
+//                            JSONObject var24 = (JSONObject)var4.get(var23);
+//                            if (null != var24 && var24.containsKey("border")) {
+//                                JSONObject var25 = var24.getJSONObject("border");
+//                                Iterator var26 = var25.keySet().iterator();
+//                                JSONArray var27 = var25.getJSONArray("right");
+//                                JSONArray var28 = var25.getJSONArray("top");
+//                                if (null != var28 && var28.size() > 1) {
+//                                    RegionUtil.setBorderTop(BorderStyle.THIN, var22, var2);
+//                                    var17.put("top", var28.get(1).toString());
+//                                }
+//
+//                                if (null != var27 && var27.size() > 1) {
+//                                    RegionUtil.setBorderRight(BorderStyle.THIN, var22, var2);
+//                                    var17.put("right", var27.get(1).toString());
+//                                }
+//
+//                                JSONArray var29 = var25.getJSONArray("left");
+//                                if (null != var29 && var29.size() > 1) {
+//                                    RegionUtil.setBorderLeft(BorderStyle.THIN, var22, var2);
+//                                    var17.put("left", var29.get(1).toString());
+//                                }
+//
+//                                JSONArray var30 = var25.getJSONArray("bottom");
+//                                if (null != var30 && var30.size() > 1) {
+//                                    RegionUtil.setBorderBottom(BorderStyle.THIN, var22, var2);
+//                                    var17.put("bottom", var30.get(1).toString());
+//                                }
+//                            }
+//
+//                            String var31 = var18 + "," + var19 + "," + var20 + "," + var21;
+//                            var6.put(var31, var17);
+//                        }
+//                    }
+//                }
+//            }
+//        }
+//    }
+//
+//    private void a11(Sheet var1, SXSSFWorkbook var2, Map<String, JSONObject> var3) {
+//        Iterator var4 = var3.keySet().iterator();
+//
+//        while(true) {
+//            JSONObject var6;
+//            String[] var7;
+//            do {
+//                if (!var4.hasNext()) {
+//                    return;
+//                }
+//
+//                String var5 = (String)var4.next();
+//                var6 = JSONObject.parseObject(String.valueOf(var3.get(var5)));
+//                var7 = var5.split(",");
+//            } while(var7.length != 4);
+//
+//            int var8 = Integer.valueOf(var7[0]);
+//            int var9 = Integer.valueOf(var7[1]);
+//            int var10 = Integer.valueOf(var7[2]);
+//            int var11 = Integer.valueOf(var7[3]);
+//
+//            for(int var12 = var8; var12 < var9 + 1; ++var12) {
+//                Row var13 = var1.getRow(var12);
+//
+//                for(int var14 = var10; var14 < var11 + 1; ++var14) {
+//                    try {
+//                        Cell var15 = var13.getCell(var14);
+//                        if (null != var15) {
+//                            XSSFCellStyle var16 = (XSSFCellStyle)var15.getCellStyle();
+//                            Object var17 = var6.get("top");
+//                            Object var18 = var6.get("left");
+//                            Object var19 = var6.get("right");
+//                            Object var20 = var6.get("bottom");
+//                            XSSFColor var21;
+//                            if (null != var17) {
+//                                var21 = this.b(var17.toString());
+//                                var16.setTopBorderColor(var21);
+//                            }
+//
+//                            if (null != var18) {
+//                                var21 = this.b(var18.toString());
+//                                var16.setLeftBorderColor(var21);
+//                            }
+//
+//                            if (null != var19) {
+//                                var21 = this.b(var19.toString());
+//                                var16.setRightBorderColor(var21);
+//                            }
+//
+//                            if (null != var20) {
+//                                var21 = this.b(var20.toString());
+//                                var16.setBottomBorderColor(var21);
+//                            }
+//
+//                            var15.setCellStyle(var16);
+//                        }
+//                    } catch (NullPointerException var22) {
+//                        a.debug("单元格为空", var22.getMessage());
+//                    }
+//                }
+//            }
+//        }
+//    }
+//
+//    private void a12(Workbook var1, Sheet var2, Map<String, String> var3, Map<String, String> var4, Map<String, JSONObject> var5, Map<String, List<String>> var6) {
+//        Set var7 = var6.keySet();
+//        Iterator var8 = var7.iterator();
+//
+//        while(true) {
+//            String var11;
+//            String var12;
+//            Cell var13;
+//            String var14;
+//            String var15;
+//            String var16;
+//            JSONObject var17;
+//            Row var18;
+//            int var19;
+//            int var20;
+//            do {
+//                do {
+//                    if (!var8.hasNext()) {
+//                        return;
+//                    }
+//
+//                    String var9 = (String)var8.next();
+//                    List var10 = (List)var6.get(var9);
+//                    var11 = (String)var10.get(0);
+//                    var12 = (String)var10.get(1);
+//                    var13 = var2.getRow(Integer.parseInt(var11)).getCell(Integer.parseInt(var12));
+//                    var14 = ExcelUtil.getCellValueByCell(var13);
+//                } while(!var14.contains("|"));
+//
+//                var15 = (String)var3.get(var13.getRowIndex() + "," + var13.getColumnIndex());
+//                var16 = (String)var4.get(var13.getRowIndex() + "," + var13.getColumnIndex());
+//                var17 = (JSONObject)var5.get(var13.getRowIndex() + "," + var13.getColumnIndex());
+//                var18 = var2.getRow(Integer.parseInt(var11));
+//                var19 = (int)var13.getSheet().getColumnWidthInPixels(var13.getColumnIndex());
+//                var20 = (int)var18.getHeightInPoints();
+//            } while(!oConvertUtils.isNotEmpty(var15));
+//
+//            int var21 = 0;
+//            int var22 = 0;
+//            int var23 = Integer.parseInt(var11);
+//            int var24 = Integer.parseInt(var12);
+//            if (oConvertUtils.isNotEmpty(var16)) {
+//                String[] var25 = var16.split(",");
+//                int var26 = Integer.parseInt(var25[0]);
+//                int var27 = Integer.parseInt(var25[1]);
+//                var23 = var26;
+//                var24 = var27;
+//
+//                int var28;
+//                for(var28 = var18.getRowNum() + 1; var28 < var26 + 1; ++var28) {
+//                    Row var29 = var2.getRow(var28);
+//                    if (var29 != null) {
+//                        var22 += (int)var2.getRow(var28).getHeightInPoints();
+//                    }
+//                }
+//
+//                for(var28 = var13.getColumnIndex() + 1; var28 < var27 + 1; ++var28) {
+//                    var21 += (int)var2.getColumnWidthInPixels(var28);
+//                }
+//            }
+//
+//            var19 += var21;
+//            var20 += var22;
+//            var13.setCellValue("");
+//            if (var2 instanceof SXSSFSheet) {
+//                try {
+//                    byte[] var32 = ExcelUtil.getImage(var14, var15, var19, var20, var17);
+//                    Drawing var33 = var2.createDrawingPatriarch();
+//                    XSSFClientAnchor var34 = new XSSFClientAnchor(12700, 12700, -12700, -12700, Integer.parseInt(var12), Integer.parseInt(var11), var24 + 1, var23 + 1);
+//                    var34.setAnchorType(ClientAnchor.AnchorType.MOVE_AND_RESIZE);
+//                    var33.createPicture(var34, var1.addPicture(var32, 5));
+//                } catch (IOException var31) {
+//                    var31.printStackTrace();
+//                }
+//            }
+//
+//            if (var2 instanceof XSSFSheet) {
+//                try {
+//                    a13(var14, var1, var2, var19, var20, var15, Integer.parseInt(var11), Integer.parseInt(var12), var23 + 1, var24 + 1, var17);
+//                } catch (Exception var30) {
+//                    var30.printStackTrace();
+//                }
+//            }
+//        }
+//    }
+//
+//    public static void a13(String var0, Workbook var1, Sheet var2, int var3, int var4, String var5, int var6, int var7, int var8, int var9, JSONObject var10) {
+//        String[] var11 = var0.split("\\|");
+//        int var12 = var11.length;
+//        Cell var13 = var2.getRow(var6).getCell(var7);
+//        CellStyle var14 = var13.getCellStyle();
+//        var14.setWrapText(true);
+//        Font var15 = var1.getFontAt(var14.getFontIndex());
+//        var15.setFontName("Microsoft YaHei");
+//        var15.setFontHeightInPoints((short)10);
+//        CreationHelper var16 = var1.getCreationHelper();
+//        String var17 = "";
+//        if (null != var10 && var10.containsKey("color")) {
+//            var17 = var10.getString("color");
+//        }
+//
+//        String var18;
+//        if (var5.equals("lefttop")) {
+//            var18 = a14(var11, var3, var4);
+//            var13.setCellValue(var18);
+//            Drawing var19 = var2.createDrawingPatriarch();
+//            if (var11.length == 2) {
+//                ExcelUtil.paintLine(var19, var19.createAnchor(0, 0, 0, 0, var7, var6, var9, var8), var5, var17);
+//            } else if (var11.length == 3) {
+//                ExcelUtil.paintLine(var19, var19.createAnchor(0, 0, 0, -((int)((double)var4 / 2.5D)) * 12700, var7, var6, var9, var8), var5, var17);
+//                ExcelUtil.paintLine(var19, var19.createAnchor(0, 0, -var3 / 4 * 12700, 0, var7, var6, var9, var8), var5, var17);
+//            }
+//        } else {
+//            var18 = b2(var11, var3, var4);
+//            var13.setCellValue(var18);
+//            a15(var2, var16, var7, var6, var9, var8, var4, var3, var12 - 1, var5, var17);
+//        }
+//
+//        var14.setFont(var15);
+//        var13.setCellStyle(var14);
+//    }
+//
+//    public static void a15(Sheet var0, CreationHelper var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, String var9, String var10) {
+//        Drawing var11;
+//        ClientAnchor var12;
+//        if (var8 == 1) {
+//            var11 = var0.createDrawingPatriarch();
+//            var12 = var1.createClientAnchor();
+//            var12.setCol1(var2);
+//            var12.setRow1(var3);
+//            var12.setCol2(var4);
+//            var12.setRow2(var5);
+//            ExcelUtil.paintLine(var11, var12, var9, var10);
+//        } else if (var8 == 2) {
+//            var11 = var0.createDrawingPatriarch();
+//            var12 = var1.createClientAnchor();
+//            var12.setCol1(var2);
+//            var12.setRow1(var3);
+//            var12.setCol2(var4);
+//            var12.setRow2(var5);
+//            var12.setDx2(-var7 / 4 * 12700);
+//            ExcelUtil.paintLine(var11, var12, var9, var10);
+//            ClientAnchor var13 = var1.createClientAnchor();
+//            Drawing var14 = var0.createDrawingPatriarch();
+//            var13.setCol1(var2);
+//            var13.setRow1(var3);
+//            var13.setCol2(var4);
+//            var13.setRow2(var5);
+//            var13.setDy1((int)((double)var6 / 2.5D) * 12700);
+//            ExcelUtil.paintLine(var14, var13, var9, var10);
+//        }
+//
+//    }
+//
+//    public static String b2(String[] var0, int var1, int var2) {
+//        int var3 = var0.length;
+//        if (var3 < 1 && var3 > 3) {
+//            return "";
+//        } else {
+//            int var4 = var1 / 4;
+//            if (var3 == 2) {
+//                var4 -= var0[1].length();
+//                if (var1 < 240) {
+//                    if (var0[1].length() > 3) {
+//                        var4 -= var0[1].length();
+//                    }
+//
+//                    var4 -= var0[1].length();
+//                }
+//            } else {
+//                if (var1 < 240) {
+//                    if (var0[2].length() > 3) {
+//                        var4 -= var0[2].length();
+//                    }
+//
+//                    var4 -= var0[2].length();
+//                }
+//
+//                var4 -= var0[2].length();
+//            }
+//
+//            String var5 = "";
+//            int var6 = var2 / 20;
+//            var5 = var5 + var0[0];
+//            int var7;
+//            if (var3 == 2) {
+//                for(var7 = 0; var7 < var6; ++var7) {
+//                    var5 = var5 + "\n";
+//                }
+//
+//                for(var7 = 0; var7 < var4; ++var7) {
+//                    var5 = var5 + " ";
+//                }
+//
+//                var5 = var5 + var0[1];
+//            }
+//
+//            if (var3 == 3) {
+//                var7 = var1 / 4;
+//                var7 = var7 - var0[0].length() * 2 - var0[1].length() * 2;
+//                if (var1 < 150) {
+//                    var7 = var7 - var0[0].length() * 2 - var0[1].length() * 2;
+//                }
+//
+//                if (var0[1].length() > 2) {
+//                    if (var1 < 260) {
+//                        var7 -= var0[1].length();
+//                    }
+//
+//                    var7 -= var0[1].length();
+//                }
+//
+//                if (var0[0].length() > 3) {
+//                    var7 -= var0[0].length();
+//                }
+//
+//                String var8 = " ";
+//
+//                int var9;
+//                for(var9 = 0; var9 < var7; ++var9) {
+//                    var8 = var8 + " ";
+//                }
+//
+//                var5 = var5 + var8 + var0[1];
+//
+//                for(var9 = 0; var9 < var6; ++var9) {
+//                    var5 = var5 + "\n";
+//                }
+//
+//                for(var9 = 0; var9 < var7; ++var9) {
+//                    var5 = var5 + " ";
+//                }
+//
+//                var5 = var5 + var0[2];
+//            }
+//
+//            return var5;
+//        }
+//    }
+//
+//    public static String a14(String[] var0, int var1, int var2) {
+//        int var3 = var0.length;
+//        if (var3 < 1 && var3 > 3) {
+//            return "";
+//        } else {
+//            int var4 = var1 / 4;
+//            if (var3 == 2) {
+//                var4 -= var0[1].length();
+//                if (var1 < 150) {
+//                    var4 -= var0[1].length() * 3;
+//                }
+//            } else {
+//                if (var1 < 186) {
+//                    var4 -= var0[2].length();
+//                }
+//
+//                if (var1 < 160) {
+//                    if (var0[2].length() == 2) {
+//                        var4 -= var0[2].length() * 2;
+//                    } else if (var0[2].length() > 2) {
+//                        var4 -= var0[2].length();
+//                    }
+//                }
+//
+//                var4 -= var0[2].length();
+//                if (var0[2].length() > 3) {
+//                    var4 -= var0[2].length();
+//                }
+//            }
+//
+//            String var5 = "";
+//
+//            int var6;
+//            for(var6 = 0; var6 < var4; ++var6) {
+//                var5 = var5 + " ";
+//            }
+//
+//            var6 = var2 / 20;
+//            if (var3 == 2) {
+//                var5 = var5 + var0[1];
+//            } else {
+//                var5 = var5 + var0[2];
+//            }
+//
+//            int var7;
+//            for(var7 = 0; var7 < var6; ++var7) {
+//                var5 = var5 + "\n";
+//            }
+//
+//            if (var3 == 2) {
+//                var5 = var5 + var0[0];
+//            }
+//
+//            if (var3 == 3) {
+//                var5 = var5 + var0[0];
+//                var7 = var1 / 4;
+//                if (var1 < 270) {
+//                    var7 = var7 - var0[0].length() * 2 - var0[1].length() * 2;
+//                }
+//
+//                if (var1 < 160) {
+//                    var7 = var7 - var0[0].length() - var0[1].length();
+//                }
+//
+//                var7 = var7 - var0[0].length() - var0[1].length();
+//                if (var0[0].length() > 3) {
+//                    var7 -= var0[0].length();
+//                }
+//
+//                if (var0[1].length() > 3) {
+//                    if (var1 > 270) {
+//                        var7 -= var0[1].length() * 2;
+//                    } else {
+//                        var7 -= var0[1].length();
+//                    }
+//                }
+//
+//                String var8 = "";
+//
+//                for(int var9 = 0; var9 < var7; ++var9) {
+//                    var8 = var8 + " ";
+//                }
+//
+//                var5 = var5 + var8 + var0[1];
+//            }
+//
+//            return var5;
+//        }
+//    }
+//
+//    private void a16(Sheet var1, XSSFWorkbook var2, JSONArray var3, Map<String, String> var4, Map<String, Object> var5) {
+//        Drawing var6 = var1.createDrawingPatriarch();
+//        HttpURLConnection var7 = null;
+//
+//        try {
+//            for(int var9 = 0; var9 < var3.size(); ++var9) {
+//                boolean var10 = false;
+//                boolean var11 = false;
+//                String var12 = "";
+//                String var13 = "";
+//                String var14 = "";
+//                JSONObject var15 = var3.getJSONObject(var9);
+//                int var37 = Integer.valueOf(var15.getString("col"));
+//                int var36 = Integer.valueOf(var15.getString("row"));
+//                var13 = (String)var15.get("width");
+//                var14 = (String)var15.get("height");
+//                var12 = (String)var15.get("src");
+//                String var16 = var15.getString("layer_id");
+//                Object var17 = var15.get("colspan");
+//                Object var18 = var15.get("rowspan");
+//                Object var19 = var5.get(var16);
+//                if (null != var19) {
+//                    String[] var20 = String.valueOf(var19).split(",");
+//                    var36 = Integer.parseInt(var20[0]);
+//                    var37 = Integer.parseInt(var20[1]);
+//                }
+//
+//                if (var14.contains("px") && var13.contains("px")) {
+//                    var14 = var14.substring(0, var14.lastIndexOf("px"));
+//                    var13 = var13.substring(0, var13.lastIndexOf("px"));
+//                }
+//
+//                byte[] var8;
+//                if (var12.contains("http")) {
+//                    URL var38 = new URL(var12);
+//                    if (var12.contains("https")) {
+//                        var8 = b.a(var12);
+//                    } else {
+//                        var7 = (HttpURLConnection)var38.openConnection();
+//                        var7.setRequestMethod("GET");
+//                        var7.setConnectTimeout(50000);
+//                        InputStream var21 = var7.getInputStream();
+//                        var8 = a21(var21);
+//                    }
+//                } else {
+//                    var8 = this.c1(var12);
+//                }
+//
+//                boolean var39 = false;
+//                String var41 = (String)var4.get(var36 + "," + var37);
+//                boolean var22 = false;
+//                int var40;
+//                int var42;
+//                if (null != var17 && null != var18) {
+//                    var42 = var36 + Integer.parseInt(var18.toString());
+//                    var40 = var37 + Integer.parseInt(var17.toString());
+//                } else {
+//                    if (oConvertUtils.isNotEmpty(var41)) {
+//                        String var23 = var41.split(",")[0];
+//                        var42 = Integer.parseInt(var23);
+//                    } else {
+//                        var42 = var36 + Integer.parseInt(String.format("%.0f", Float.parseFloat(var14) / 25.0F));
+//                    }
+//
+//                    Integer var43 = this.a22(var1, var36, (float)Integer.parseInt(var14));
+//                    if (var43 > 0) {
+//                        var42 = var43;
+//                    } else {
+//                        var42 += var36;
+//                    }
+//
+//                    var40 = Integer.parseInt(String.format("%.0f", Float.parseFloat(var13) / 100.0F));
+//                    var40 += var37;
+//                }
+//
+//                Object var44 = var15.get("isBackend");
+//                if (null != var44 && (Boolean)var44) {
+//                    int var45 = var2.addPicture(var8, 6);
+//                    XSSFPictureData var25 = (XSSFPictureData)var2.getAllPictures().get(var45);
+//
+//                    try {
+//                        for(int var26 = 0; var26 < var2.getNumberOfSheets(); ++var26) {
+//                            XSSFSheet var46 = var2.getSheetAt(var26);
+//                            PackagePartName var28 = var25.getPackagePart().getPartName();
+//                            String var29 = XSSFRelation.IMAGES.getRelation();
+//                            PackageRelationship var30 = var46.getPackagePart().addRelationship(var28, TargetMode.EXTERNAL, var29, (String)null);
+//                            var46.getCTWorksheet().addNewPicture().setId(var30.getId());
+//                        }
+//                    } catch (Exception var31) {
+//                        XSSFClientAnchor var27 = new XSSFClientAnchor(0, 0, Integer.parseInt(var13), Integer.parseInt(var14), var37, var36, var40, var42);
+//                        var6.createPicture(var27, var2.addPicture(var8, 5));
+//                    }
+//                } else {
+//                    XSSFClientAnchor var24 = new XSSFClientAnchor(0, 0, Integer.parseInt(var13), Integer.parseInt(var14), var37, var36, var40, var42);
+//                    var6.createPicture(var24, var2.addPicture(var8, 5));
+//                }
+//            }
+//        } catch (MalformedURLException var32) {
+//            var32.printStackTrace();
+//        } catch (ProtocolException var33) {
+//            var33.printStackTrace();
+//        } catch (IOException var34) {
+//            var34.printStackTrace();
+//        } catch (Exception var35) {
+//            var35.printStackTrace();
+//        }
+//
+//    }
+//
+//    private void a17(Sheet var1, SXSSFWorkbook var2, JSONArray var3, Map<String, Object> var4, JSONObject var5, JSONObject var6) {
+//        Drawing var7 = var1.createDrawingPatriarch();
+//        Object var8 = null;
+//
+//        try {
+//            for(int var9 = 0; var9 < var3.size(); ++var9) {
+//                boolean var10 = false;
+//                boolean var11 = false;
+//                String var12 = "";
+//                String var13 = "";
+//                String var14 = "";
+//                JSONObject var15 = var3.getJSONObject(var9);
+//                int var33 = Integer.valueOf(var15.getString("col"));
+//                int var32 = Integer.valueOf(var15.getString("row"));
+//                var13 = (String)var15.get("width");
+//                var14 = (String)var15.get("height");
+//                var12 = (String)var15.get("url");
+//                String var16 = var15.getString("layer_id");
+//                Object var17 = var4.get(var16);
+//                if (null != var17) {
+//                    String[] var18 = String.valueOf(var17).split(",");
+//                    var32 = Integer.parseInt(var18[0]);
+//                    var33 = Integer.parseInt(var18[1]);
+//                }
+//
+//                byte[] var34 = new byte[0];
+//                var34 = oConvertUtils.decodeBase64(var12);
+//                int var20 = 0;
+//                float var21 = Float.parseFloat(var14);
+//
+//                for(int var22 = var32; var22 < var32 + 99; ++var22) {
+//                    Row var23 = var1.getRow(var22);
+//                    if (var23 == null) {
+//                        break;
+//                    }
+//
+//                    ++var20;
+//                    var21 -= var23.getHeightInPoints();
+//                }
+//
+//                Object var35 = var15.get("colspan");
+//                Object var36 = var15.get("rowspan");
+//                boolean var24 = false;
+//                int var37;
+//                if (null != var35 && null != var36) {
+//                    var20 = var32 + Integer.parseInt(var36.toString());
+//                    var37 = var33 + Integer.parseInt(var35.toString());
+//                } else {
+//                    var20 += Integer.parseInt(String.format("%.0f", var21 / 25.0F));
+//                    var37 = Integer.parseInt(String.format("%.0f", Float.parseFloat(var13) / 100.0F));
+//                    var37 += var33;
+//                }
+//
+//                int var25 = 0;
+//
+//                int var26;
+//                for(var26 = var33; var26 < var37; ++var26) {
+//                    Object var27 = var5.get(var26);
+//                    if (oConvertUtils.isNotEmpty(var27)) {
+//                        JSONObject var28 = (JSONObject)var27;
+//                        Object var29 = var28.get("width");
+//                        var25 += Integer.valueOf(String.valueOf(var29));
+//                    } else {
+//                        var25 += 100;
+//                    }
+//                }
+//
+//                if (var25 > Integer.parseInt(var13)) {
+//                    var25 -= Integer.parseInt(var13);
+//                } else {
+//                    var25 = 0;
+//                }
+//
+//                var25 = var25 * 3 / 4;
+//                var26 = 0;
+//
+//                for(int var38 = var32; var38 < var20; ++var38) {
+//                    Object var40 = var6.get(var38);
+//                    if (oConvertUtils.isNotEmpty(var40)) {
+//                        JSONObject var41 = (JSONObject)var40;
+//                        Object var30 = var41.get("height");
+//                        if (oConvertUtils.isNotEmpty(var30)) {
+//                            var26 += Integer.parseInt(var30.toString());
+//                        } else {
+//                            var26 += 25;
+//                        }
+//                    } else {
+//                        var26 += 25;
+//                    }
+//                }
+//
+//                if (var26 > Integer.parseInt(var14)) {
+//                    var26 -= Integer.parseInt(var14);
+//                } else {
+//                    var26 = 0;
+//                }
+//
+//                var26 = var26 * 3 / 4;
+//                XSSFClientAnchor var39 = new XSSFClientAnchor(0, 0, 12700 * -var25, 12700 * -var26, var33, var32, var37, var20);
+//                var7.createPicture(var39, var2.addPicture(var34, 5));
+//            }
+//        } catch (Exception var31) {
+//            var31.printStackTrace();
+//        }
+//
+//    }
+//
+//    private void a18(Sheet var1, Workbook var2, JSONArray var3, List var4, Map<String, Object> var5) {
+//        Drawing var6 = var1.createDrawingPatriarch();
+//
+//        for(int var7 = 0; var7 < var3.size(); ++var7) {
+//            JSONObject var8 = var3.getJSONObject(var7);
+//            boolean var9 = false;
+//            boolean var10 = false;
+//            String var11 = "";
+//            String var12 = "";
+//            int var25 = Integer.valueOf(var8.getString("col"));
+//            int var24 = Integer.valueOf(var8.getString("row"));
+//            var11 = String.valueOf(var8.get("width"));
+//            var12 = String.valueOf(var8.get("height"));
+//            String var13 = (String)var8.get("layer_id");
+//            String var14 = "";
+//            Object var15 = var5.get(var13);
+//            if (null != var15) {
+//                String[] var16 = String.valueOf(var15).split(",");
+//                var24 = Integer.parseInt(var16[0]);
+//                var25 = Integer.parseInt(var16[1]);
+//            }
+//
+//            Object var18;
+//            for(int var26 = 0; var26 < var4.size(); ++var26) {
+//                Map var17 = (Map)var4.get(var26);
+//                var18 = var17.get("id");
+//                if (var13.equals(var18.toString())) {
+//                    var14 = (String)var17.get("base64");
+//                }
+//            }
+//
+//            byte[] var27 = new byte[0];
+//            var27 = oConvertUtils.decodeBase64(var14.replace("data:image/png;base64,", ""));
+//            var18 = var8.get("colspan");
+//            Object var19 = var8.get("rowspan");
+//            boolean var20 = false;
+//            boolean var21 = false;
+//            float var22 = Float.parseFloat(var12);
+//            int var28;
+//            int var29;
+//            if (null != var18 && null != var19) {
+//                var29 = var24 + Integer.parseInt(var19.toString());
+//                var28 = var25 + Integer.parseInt(var18.toString());
+//            } else {
+//                var28 = var24 + Integer.parseInt(String.format("%.0f", Float.parseFloat(var12) / 25.0F));
+//                var29 = Integer.parseInt(String.format("%.0f", Float.parseFloat(var11) / 100.0F));
+//            }
+//
+//            XSSFClientAnchor var23 = new XSSFClientAnchor(0, 0, Integer.parseInt(var11), Integer.parseInt(var12), var25, var24, var28, var29);
+//            var6.createPicture(var23, var2.addPicture(var27, 5));
+//        }
+//
+//    }
+//
+//    private void a19(Sheet var1, XSSFWorkbook var2, JSONObject var3) {
+//        Drawing var4 = var1.createDrawingPatriarch();
+//        Object var5 = null;
+//        String var6 = "";
+//        String var7 = "";
+//        String var8 = "";
+//        Object var18 = var3.get("width");
+//        Object var19 = var3.get("height");
+//        var6 = var3.getString("path");
+//        byte[] var9 = this.a20(var6);
+//        XSSFPictureData var10 = null;
+//        boolean var11 = false;
+//
+//        try {
+//            int var20 = var2.addPicture(var9, 6);
+//            var10 = (XSSFPictureData)var2.getAllPictures().get(var20);
+//        } catch (NullPointerException var17) {
+//            a.debug("数据为空", var17.getMessage());
+//        }
+//
+//        if (var10 != null) {
+//            for(int var12 = 0; var12 < var2.getNumberOfSheets(); ++var12) {
+//                XSSFSheet var13 = var2.getSheetAt(var12);
+//                PackagePartName var14 = var10.getPackagePart().getPartName();
+//                String var15 = XSSFRelation.IMAGES.getRelation();
+//                PackageRelationship var16 = var13.getPackagePart().addRelationship(var14, TargetMode.EXTERNAL, var15, (String)null);
+//                var13.getCTWorksheet().addNewPicture().setId(var16.getId());
+//            }
+//        }
+//
+//    }
+//
+//    public byte[] a20(String var1) {
+//        URL var2 = null;
+//        Object var3 = null;
+//        byte[] var7;
+//        if (var1.contains("http")) {
+//            try {
+//                var2 = new URL(var1);
+//                if (var1.contains("https")) {
+//                    var7 = b.a(var1);
+//                    return var7;
+//                } else {
+//                    HttpURLConnection var4 = null;
+//                    var4 = (HttpURLConnection)var2.openConnection();
+//                    var4.setRequestMethod("GET");
+//                    var4.setConnectTimeout(50000);
+//                    InputStream var5 = var4.getInputStream();
+//                    var7 = a21(var5);
+//                    return var7;
+//                }
+//            } catch (Exception var6) {
+//                var6.printStackTrace();
+//                return null;
+//            }
+//        } else {
+//            var7 = this.c1(var1);
+//            return var7;
+//        }
+//    }
+//
+//    private static byte[] a21(InputStream var0) throws Exception {
+//        ByteArrayOutputStream var1 = new ByteArrayOutputStream();
+//        byte[] var2 = new byte[1024];
+//        boolean var3 = false;
+//
+//        int var4;
+//        while((var4 = var0.read(var2)) != -1) {
+//            var1.write(var2, 0, var4);
+//        }
+//
+//        var0.close();
+//        return var1.toByteArray();
+//    }
+//
+//    private byte[] c1(String var1) {
+//        File var2 = new File(this.jimuReportUploadConfig.getPath().getUpload() + File.separator + var1);
+//
+//        try {
+//            byte[] var3 = Files.readAllBytes(var2.toPath());
+//            return var3;
+//        } catch (IOException var4) {
+//            var4.printStackTrace();
+//            return null;
+//        }
+//    }
+//
+//    public Integer a22(Sheet var1, Integer var2, float var3) {
+//        int var4 = 0;
+//        Double var5 = 0.0D;
+//
+//        for(Iterator var6 = var1.iterator(); var6.hasNext(); ++var4) {
+//            Row var7 = (Row)var6.next();
+//            if (var2 <= var4) {
+//                var5 = var5 + (double)var7.getHeightInPoints();
+//            }
+//
+//            if (var5 != 0.0D && (double)var3 - var5 <= 10.0D && var4 > 0) {
+//                return var4;
+//            }
+//
+//            if (var5 >= (double)var3 && var4 > 0) {
+//                return var4;
+//            }
+//        }
+//
+//        return 0;
+//    }
+//}
+//

+ 1864 - 1864
boman-report/src/main/java/org/jeecg/modules/jmreport/desreport/a/service/a/k.java

@@ -1,1865 +1,1865 @@
+////
+//// Source code recreated from a .class file by IntelliJ IDEA
+//// (powered by FernFlower decompiler)
+////
 //
-// Source code recreated from a .class file by IntelliJ IDEA
-// (powered by FernFlower decompiler)
-//
-
-package org.jeecg.modules.jmreport.desreport.service.a;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.ProtocolException;
-import java.net.URL;
-import java.nio.file.Files;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.Map.Entry;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import org.apache.poi.openxml4j.opc.PackagePartName;
-import org.apache.poi.openxml4j.opc.PackageRelationship;
-import org.apache.poi.openxml4j.opc.TargetMode;
-import org.apache.poi.ss.usermodel.BorderStyle;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.CellStyle;
-import org.apache.poi.ss.usermodel.ClientAnchor;
-import org.apache.poi.ss.usermodel.CreationHelper;
-import org.apache.poi.ss.usermodel.DataFormat;
-import org.apache.poi.ss.usermodel.Drawing;
-import org.apache.poi.ss.usermodel.FillPatternType;
-import org.apache.poi.ss.usermodel.Font;
-import org.apache.poi.ss.usermodel.HorizontalAlignment;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.VerticalAlignment;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.ss.usermodel.ClientAnchor.AnchorType;
-import org.apache.poi.ss.util.CellRangeAddress;
-import org.apache.poi.ss.util.CellReference;
-import org.apache.poi.ss.util.RegionUtil;
-import org.apache.poi.xssf.streaming.SXSSFCell;
-import org.apache.poi.xssf.streaming.SXSSFRow;
-import org.apache.poi.xssf.streaming.SXSSFSheet;
-import org.apache.poi.xssf.streaming.SXSSFWorkbook;
-import org.apache.poi.xssf.usermodel.XSSFCell;
-import org.apache.poi.xssf.usermodel.XSSFCellStyle;
-import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
-import org.apache.poi.xssf.usermodel.XSSFColor;
-import org.apache.poi.xssf.usermodel.XSSFFont;
-import org.apache.poi.xssf.usermodel.XSSFPictureData;
-import org.apache.poi.xssf.usermodel.XSSFRelation;
-import org.apache.poi.xssf.usermodel.XSSFRow;
-import org.apache.poi.xssf.usermodel.XSSFSheet;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.jeecg.modules.jmreport.common.constant.CommonConstant;
-import org.jeecg.modules.jmreport.common.constant.JmConst;
-import org.jeecg.modules.jmreport.common.util.ExcelUtil;
-import org.jeecg.modules.jmreport.common.util.GoogleBarCodeUtils;
-import org.jeecg.modules.jmreport.common.util.oConvertUtils;
-import org.jeecg.modules.jmreport.common.vo.Result;
-import org.jeecg.modules.jmreport.config.JmReportBaseConfig;
-import org.jeecg.modules.jmreport.config.oss.JmReportUploadConfig;
-import org.jeecg.modules.jmreport.desreport.entity.JimuReport;
-import org.jeecg.modules.jmreport.desreport.render.utils.ExcelColumn;
-import org.jeecg.modules.jmreport.desreport.service.IJmReportExportExcel;
-import org.jeecg.modules.jmreport.desreport.util.b;
-import org.jeecg.modules.jmreport.desreport.util.d;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Primary;
-import org.springframework.stereotype.Service;
-
-@Service
-@Primary
-public class k implements IJmReportExportExcel {
-    private static final Logger a = LoggerFactory.getLogger(k.class);
-    @Autowired
-    private e jmReportDesignService;
-    @Autowired
-    private JmReportBaseConfig jmBaseConfig;
-    @Autowired
-    private JmReportUploadConfig jimuReportUploadConfig;
-
-    public Map<String, Object> exportExcel(String excelConfigId, JSONObject queryParam, List echartBase) {
-        XSSFWorkbook var4 = new XSSFWorkbook();
-        SXSSFWorkbook var5 = new SXSSFWorkbook(var4, -1, Boolean.FALSE, Boolean.TRUE);
-        String var6 = "";
-        HashMap var7 = new HashMap();
-        XSSFCellStyle var8 = this.a(var5);
-        var7.put("generalStyle", var8);
-        boolean var9 = true;
-        new HashMap();
-        int var11 = 1;
-        Integer var12 = this.jmBaseConfig.getPageSizeNumber();
-        if (null == queryParam || queryParam.size() == 0) {
-            queryParam = new JSONObject();
-        }
-
-        while(var9) {
-            if (oConvertUtils.isEmpty(var12)) {
-                var12 = 10000;
-            }
-
-            if (oConvertUtils.isNotEmpty(var12) && "0".equals(String.valueOf(var12))) {
-                var12 = 10000;
-            }
-
-            queryParam.put("pageNo", var11);
-            queryParam.put("pageSize", var12);
-            Result var13 = this.jmReportDesignService.show(excelConfigId, queryParam.toJSONString());
-            JimuReport var14 = (JimuReport)var13.getResult();
-            JSONObject var15 = JSON.parseObject(var14.getJsonStr());
-            JSONObject var16 = var15.getJSONObject("rows");
-            if (var16.containsKey("-1")) {
-                var16.remove("-1");
-            }
-
-            if (var16.containsKey("len")) {
-                var16.remove("len");
-            }
-
-            if (var16.size() < var12) {
-                var9 = false;
-            }
-
-            if (var16.size() > var12) {
-                var9 = false;
-            }
-
-            var6 = var14.getName();
-            JSONObject var17 = JSON.parseObject(var14.getJsonStr());
-            this.a((JSONObject)var17, (List)echartBase, (SXSSFWorkbook)var5, (XSSFWorkbook)var4, (Integer)var11, (Map)var7);
-            ++var11;
-        }
-
-        HashMap var18 = new HashMap();
-        var18.put("name", var6 + ".xlsx");
-        var18.put("workbook", var5);
-        return var18;
-    }
-
-    private XSSFCellStyle a(SXSSFWorkbook var1) {
-        XSSFCellStyle var2 = (XSSFCellStyle)var1.createCellStyle();
-        XSSFFont var3 = (XSSFFont)var1.createFont();
-        var3.setFontName("宋体");
-        var2.setFont(var3);
-        var2.setAlignment(HorizontalAlignment.CENTER);
-        var2.setVerticalAlignment(VerticalAlignment.CENTER);
-        return var2;
-    }
-
-    private SXSSFWorkbook a(JSONObject var1, List var2, SXSSFWorkbook var3, XSSFWorkbook var4, Integer var5, Map<String, CellStyle> var6) {
-        JSONArray var7 = null;
-        JSONArray var8 = null;
-        JSONArray var9 = null;
-        JSONArray var10 = null;
-        JSONObject var11 = null;
-        if (var1.containsKey("imgList")) {
-            var7 = var1.getJSONArray("imgList");
-        }
-
-        if (var1.containsKey("chartList")) {
-            var8 = var1.getJSONArray("chartList");
-        }
-
-        if (var1.containsKey("barcodeList")) {
-            var9 = var1.getJSONArray("barcodeList");
-        }
-
-        if (var1.containsKey("qrcodeList")) {
-            var10 = var1.getJSONArray("qrcodeList");
-        }
-
-        if (var1.containsKey("background")) {
-            Object var12 = var1.get("background");
-            if (var12 instanceof JSONObject) {
-                var11 = var1.getJSONObject("background");
-            }
-        }
-
-        JSONObject var13;
-        String var14;
-        if (var8 != null && var8.size() > 0 && var2.size() > 0) {
-            for(int var31 = 0; var31 < var8.size(); ++var31) {
-                var13 = var8.getJSONObject(var31);
-                var14 = (String)var13.get("layer_id");
-                List var15 = var2;
-                String var16 = "";
-
-                for(int var17 = 0; var17 < var15.size(); ++var17) {
-                    Map var18 = (Map)var15.get(var17);
-                    if (((String)var18.get("id")).equals(var14)) {
-                        var16 = (String)var18.get("base64");
-                    }
-                }
-
-                String[] var35 = var16.split("base64,");
-                var13.put("url", var35[1]);
-            }
-        }
-
-        JSONObject var32 = var1.getJSONObject("rows");
-        var13 = var1.getJSONObject("cols");
-        if (var13.containsKey("len")) {
-            var13.remove("len");
-        }
-
-        if (var32.containsKey("-1")) {
-            var32.remove("-1");
-        }
-
-        var14 = var1.getString("name");
-        Object var33 = var1.get("styles");
-        HashMap var34 = new HashMap();
-        int var37;
-        if (var33 instanceof JSONArray) {
-            JSONArray var36 = var1.getJSONArray("styles");
-
-            for(var37 = 0; var37 < var36.size(); ++var37) {
-                var34.put(String.valueOf(var37), var36.get(var37));
-            }
-        }
-
-        if (var33 instanceof JSONObject) {
-            JSONObject var38 = (JSONObject)var33;
-
-            for(var37 = 1; var37 <= var38.size(); ++var37) {
-                var34.put(String.valueOf(var37), var38.get(var37));
-            }
-        }
-
-        Object var39 = null;
-        String var40 = this.jmBaseConfig.getExportExcelPattern();
-        if (oConvertUtils.isEmpty(var40) || "fast".equals(var40)) {
-            var3.createSheet("sheet" + var5);
-            var39 = var3.getSheetAt(var5 - 1);
-        }
-
-        if ("primary".equals(var40)) {
-            var4.createSheet("sheet" + var5);
-            var39 = var4.getSheetAt(var5 - 1);
-        }
-
-        this.a((Sheet)var39, var13);
-        ((Sheet)var39).setDefaultRowHeightInPoints(19.5F);
-        HashMap var19 = new HashMap();
-        HashMap var20 = new HashMap();
-        HashMap var21 = new HashMap();
-        ArrayList var22 = new ArrayList();
-        HashMap var23 = new HashMap();
-        Map var24 = this.a(var32);
-        HashMap var25 = new HashMap();
-        long var26 = System.currentTimeMillis();
-        HashMap var28 = new HashMap();
-        this.a((Map)var34, (Workbook)var3, (Map)var6);
-        if (var39 instanceof SXSSFSheet) {
-            this.a((SXSSFWorkbook)var3, var32, var34, (SXSSFSheet)((SXSSFSheet)var39), var19, var20, var21, var22, var24, var25, var28, var5, var6);
-        }
-
-        if (var39 instanceof XSSFSheet) {
-            this.a((XSSFWorkbook)var4, var32, var34, (XSSFSheet)((XSSFSheet)var39), var19, var20, var21, var22, var24, var25, var28, var5, var6);
-        }
-
-        long var29 = System.currentTimeMillis();
-        a.info("循环数据运行时间:" + (var29 - var26) + "ms");
-        if (var32.size() < this.jmBaseConfig.excelStyleRow && var5 == 1 || var39 instanceof XSSFSheet) {
-            this.a((JSONObject)var32, (Sheet)var39, (SXSSFWorkbook)var3, (Map)var34, (Map)var28, (Map)var23);
-            this.a((Sheet)var39, (SXSSFWorkbook)var3, (Map)var23);
-        }
-
-        this.a((Workbook)var3, (Sheet)var39, (Map)var19, (Map)var28, (Map)var20, (Map)var21);
-        if (var7 != null) {
-            this.a((Sheet)var39, (XSSFWorkbook)var4, (JSONArray)var7, (Map)var28, var25);
-        }
-
-        if (var8 != null) {
-            this.a((Sheet)var39, (SXSSFWorkbook)var3, (JSONArray)var8, (Map)var25, (JSONObject)var13, (JSONObject)var32);
-        }
-
-        if (var9 != null) {
-            this.a((Sheet)var39, (Workbook)var3, (JSONArray)var9, (List)var2, var25);
-        }
-
-        if (var10 != null) {
-            this.a((Sheet)var39, (Workbook)var3, (JSONArray)var10, (List)var2, var25);
-        }
-
-        if (var11 != null) {
-            this.a((Sheet)var39, (XSSFWorkbook)var4, (JSONObject)var11);
-        }
-
-        if (null != var22 && var22.size() > 0) {
-            this.a((Sheet)var39, (SXSSFWorkbook)var3, (List)var22, (Map)var28, var25);
-        }
-
-        return var3;
-    }
-
-    private Map<String, Object> a(JSONObject var1) {
-        HashMap var2 = new HashMap();
-        Iterator var3 = var1.keySet().iterator();
-
-        label60:
-        while(true) {
-            String var4;
-            int var5;
-            do {
-                do {
-                    do {
-                        do {
-                            if (!var3.hasNext()) {
-                                return var2;
-                            }
-
-                            var4 = (String)var3.next();
-                        } while("cells".equals(var4));
-                    } while("isDrag".equals(var4));
-                } while("len".equals(var4));
-
-                var5 = Integer.parseInt(var4);
-            } while(var5 < 0);
-
-            JSONObject var6 = var1.getJSONObject(var4).getJSONObject("cells");
-            var6 = this.b(var6);
-            Iterator var7 = var6.keySet().iterator();
-
-            while(true) {
-                String var8;
-                String var10;
-                Matcher var13;
-                do {
-                    JSONObject var9;
-                    do {
-                        do {
-                            if (!var7.hasNext()) {
-                                continue label60;
-                            }
-
-                            var8 = (String)var7.next();
-                        } while("-1".equals(var8));
-
-                        var9 = var6.getJSONObject(var8);
-                    } while(!var9.containsKey("text"));
-
-                    var10 = var9.getString("text");
-                    String var11 = "^[=][A-Z]{1,2}[^\\u4e00-\\u9fa5]+$";
-                    Pattern var12 = Pattern.compile(var11);
-                    var13 = var12.matcher(var10);
-                } while(!ExcelUtil.isHave(CommonConstant.JIMUREPORT_FUNCTION, var10) && !var13.matches());
-
-                var2.put(var4 + "," + var8, var10);
-            }
-        }
-    }
-
-    private void a(Sheet var1, SXSSFWorkbook var2, Map<String, JSONObject> var3) {
-        Iterator var4 = var3.keySet().iterator();
-
-        while(true) {
-            JSONObject var6;
-            String[] var7;
-            do {
-                if (!var4.hasNext()) {
-                    return;
-                }
-
-                String var5 = (String)var4.next();
-                var6 = JSONObject.parseObject(String.valueOf(var3.get(var5)));
-                var7 = var5.split(",");
-            } while(var7.length != 4);
-
-            int var8 = Integer.valueOf(var7[0]);
-            int var9 = Integer.valueOf(var7[1]);
-            int var10 = Integer.valueOf(var7[2]);
-            int var11 = Integer.valueOf(var7[3]);
-
-            for(int var12 = var8; var12 < var9 + 1; ++var12) {
-                Row var13 = var1.getRow(var12);
-
-                for(int var14 = var10; var14 < var11 + 1; ++var14) {
-                    try {
-                        Cell var15 = var13.getCell(var14);
-                        if (null != var15) {
-                            XSSFCellStyle var16 = (XSSFCellStyle)var15.getCellStyle();
-                            Object var17 = var6.get("top");
-                            Object var18 = var6.get("left");
-                            Object var19 = var6.get("right");
-                            Object var20 = var6.get("bottom");
-                            XSSFColor var21;
-                            if (null != var17) {
-                                var21 = this.b(var17.toString());
-                                var16.setTopBorderColor(var21);
-                            }
-
-                            if (null != var18) {
-                                var21 = this.b(var18.toString());
-                                var16.setLeftBorderColor(var21);
-                            }
-
-                            if (null != var19) {
-                                var21 = this.b(var19.toString());
-                                var16.setRightBorderColor(var21);
-                            }
-
-                            if (null != var20) {
-                                var21 = this.b(var20.toString());
-                                var16.setBottomBorderColor(var21);
-                            }
-
-                            var15.setCellStyle(var16);
-                        }
-                    } catch (NullPointerException var22) {
-                        a.debug("单元格为空", var22.getMessage());
-                    }
-                }
-            }
-        }
-    }
-
-    private void a(SXSSFWorkbook var1, JSONObject var2, Map var3, SXSSFSheet var4, Map<String, String> var5, Map<String, JSONObject> var6, Map<String, List<String>> var7, List<Map<String, Object>> var8, Map<String, Object> var9, Map<String, Object> var10, Map<String, String> var11, Integer var12, Map<String, CellStyle> var13) {
-        var2 = this.b(var2);
-        Iterator var14 = var2.keySet().iterator();
-
-        while(true) {
-            String var15;
-            int var16;
-            do {
-                do {
-                    do {
-                        do {
-                            if (!var14.hasNext()) {
-                                return;
-                            }
-
-                            var15 = (String)var14.next();
-                        } while("cells".equals(var15));
-                    } while("isDrag".equals(var15));
-                } while("len".equals(var15));
-
-                var16 = Integer.parseInt(var15);
-            } while(var16 < 0);
-
-            SXSSFRow var17 = var4.createRow(Integer.parseInt(var15));
-            if (var2.getJSONObject(var15).containsKey("height")) {
-                Integer var18 = var2.getJSONObject(var15).getInteger("height");
-                var17.setHeightInPoints((float)var18 - 9.5F);
-            }
-
-            JSONObject var24 = var2.getJSONObject(var15).getJSONObject("cells");
-            var24 = this.b(var24);
-            Iterator var19 = var24.keySet().iterator();
-
-            while(var19.hasNext()) {
-                String var20 = (String)var19.next();
-                if (!"-1".equals(var20)) {
-                    JSONObject var21 = var24.getJSONObject(var20);
-                    SXSSFCell var22 = var17.createCell(Integer.parseInt(var20));
-                    if (var21.containsKey("style") && var2.size() < this.jmBaseConfig.excelStyleRow && var12 == 1) {
-                        String var23 = var21.getString("style");
-                        var22.setCellStyle((CellStyle)var13.get(var23));
-                    }
-
-                    if (var2.size() >= this.jmBaseConfig.excelStyleRow) {
-                        var22.setCellStyle((CellStyle)var13.get("generalStyle"));
-                    }
-
-                    this.a(var1, var21, var15, var20, var4, var22, var3, var11, var8, var5, var9, var13, var6, var7, var17, var10);
-                }
-            }
-        }
-    }
-
-    private void a(XSSFWorkbook var1, JSONObject var2, Map var3, XSSFSheet var4, Map<String, String> var5, Map<String, JSONObject> var6, Map<String, List<String>> var7, List<Map<String, Object>> var8, Map<String, Object> var9, Map<String, Object> var10, Map<String, String> var11, Integer var12, Map<String, CellStyle> var13) {
-        var2 = this.b(var2);
-        Iterator var14 = var2.keySet().iterator();
-        boolean var15 = true;
-
-        while(true) {
-            String var16;
-            int var17;
-            do {
-                do {
-                    do {
-                        do {
-                            if (!var14.hasNext()) {
-                                return;
-                            }
-
-                            var16 = (String)var14.next();
-                        } while("cells".equals(var16));
-                    } while("isDrag".equals(var16));
-                } while("len".equals(var16));
-
-                var17 = Integer.parseInt(var16);
-            } while(var17 < 0);
-
-            XSSFRow var18 = var4.createRow(Integer.parseInt(var16));
-            if (var2.getJSONObject(var16).containsKey("height")) {
-                Integer var19 = var2.getJSONObject(var16).getInteger("height");
-                var18.setHeightInPoints((float)var19 - 9.5F);
-            }
-
-            JSONObject var25 = var2.getJSONObject(var16).getJSONObject("cells");
-            var25 = this.b(var25);
-            Iterator var20 = var25.keySet().iterator();
-
-            while(var20.hasNext()) {
-                String var21 = (String)var20.next();
-                if (!"-1".equals(var21)) {
-                    JSONObject var22 = var25.getJSONObject(var21);
-                    XSSFCell var23 = var18.createCell(Integer.parseInt(var21));
-                    if (var22.containsKey("style")) {
-                        String var24 = var22.getString("style");
-                        var23.setCellStyle((CellStyle)var13.get(var24));
-                    }
-
-                    this.a(var1, var22, var16, var21, var4, var23, var3, var11, var8, var5, var9, var13, var6, var7, var18, var10);
-                }
-            }
-        }
-    }
-
-    private void a(Workbook var1, JSONObject var2, String var3, String var4, Sheet var5, Cell var6, Map var7, Map var8, List var9, Map var10, Map var11, Map<String, CellStyle> var12, Map var13, Map var14, Row var15, Map var16) {
-        String var17 = var2.getString("merge");
-        String var18;
-        if (var2.containsKey("virtual")) {
-            var18 = var2.getString("virtual");
-            if (var16.get(var18) == null) {
-                var16.put(var18, var3 + "," + var4);
-            }
-        }
-
-        if (var17 != null && !"".equals(var17)) {
-            String[] var32 = a(var17, "[", "]").split(",");
-            int var19 = Integer.parseInt(var32[0]);
-            int var20 = Integer.parseInt(var32[1]);
-            int var21 = Integer.parseInt(var3);
-            int var22 = var19 + var21;
-            int var23 = Integer.parseInt(var4);
-            int var24 = var20 + var23;
-            CellRangeAddress var25 = new CellRangeAddress(var21, var22, var23, var24);
-
-            try {
-                var5.addMergedRegion(var25);
-            } catch (IllegalStateException var30) {
-                a.warn("单元格合并失败,原因重复单元格或者一个单元格不允许重复合并", var30.getMessage());
-            } catch (IllegalArgumentException var31) {
-                a.warn("单元格合并失败,原因重复单元格或者一个单元格不允许重复合并", var31.getMessage());
-            }
-
-            var8.put(var21 + "," + var23, var22 + "," + var24);
-        }
-
-        String var35;
-        String var37;
-        if (var2.containsKey("display")) {
-            var18 = var2.getString("display");
-            if ("barcode".equals(var18) || "qrcode".equals(var18) || "img".equals(var18)) {
-                HashMap var33 = new HashMap();
-                var35 = var2.getString("display");
-                var37 = var2.getString("text");
-                String var38 = var2.getString("style");
-                String var41 = var2.getString("rendered");
-                var33.put("style", (JSONObject)var7.get(var38));
-                var33.put("text", var37);
-                var33.put("display", var35);
-                var33.put("row", var6.getRowIndex());
-                var33.put("cell", var6.getColumnIndex());
-                var33.put("layer_id", var41);
-                var9.add(var33);
-            }
-        }
-
-        if (var2.containsKey("text")) {
-            var18 = var2.getString("text");
-            String var34 = "";
-
-            try {
-                var34 = this.a(var2, var7, var18);
-            } catch (Exception var29) {
-                var29.printStackTrace();
-            }
-
-            if (var18.contains("|")) {
-                Object var36 = var2.get("lineStart");
-                if (null != var36) {
-                    var10.put(var3 + "," + var4, var36.toString());
-                    var37 = var2.getString("style");
-                    var13.put(var3 + "," + var4, (JSONObject)var7.get(var37));
-                    ArrayList var39 = new ArrayList();
-                    var39.add(var3);
-                    var39.add(var4);
-                    var14.put(var3, var39);
-                }
-            }
-
-            var35 = "";
-            var37 = var2.getString("style");
-            if (oConvertUtils.isNotEmpty(var37)) {
-                JSONObject var40 = (JSONObject)var7.get(var37);
-                if (var40.containsKey("format")) {
-                    var35 = var40.getString("format");
-                }
-            }
-
-            if (oConvertUtils.isNotEmpty(var35) && oConvertUtils.isNotEmpty(var18) && ExcelUtil.isHave(JmConst.NUMBER_FUNCTION, var35)) {
-                DataFormat var42 = var1.createDataFormat();
-                CellStyle var43 = (CellStyle)var12.get(var37);
-                String var44 = "0.00";
-                Object var45 = var2.get("decimalPlaces");
-                if (oConvertUtils.isNotEmpty(var45) && "number".equals(var35)) {
-                    Integer var26 = Integer.valueOf(var45.toString());
-                    if (var26 <= 0) {
-                        var44 = "0";
-                    } else {
-                        String var27 = "0.";
-
-                        for(int var28 = 0; var28 < var26; ++var28) {
-                            var27 = var27 + "0";
-                        }
-
-                        var44 = var27;
-                    }
-
-                    var43.setDataFormat(var42.getFormat(var44));
-                    var6.setCellStyle(var43);
-                }
-
-                var6.setCellValue(Double.parseDouble(var18));
-                return;
-            }
-
-            var6.setCellValue(oConvertUtils.isNotEmpty(var34) ? var34 : var18);
-        }
-
-    }
-
-    private boolean a(Row var1, Integer var2, Map<String, Object> var3) {
-        CellReference var4 = new CellReference(var1.getRowNum(), var2);
-        String[] var5 = var4.getCellRefParts();
-        String var6 = var5[1];
-        String var7 = var5[2];
-        String var8 = var7 + var6;
-        Iterator var9 = var3.entrySet().iterator();
-
-        while(var9.hasNext()) {
-            Entry var10 = (Entry)var9.next();
-            String var11 = String.valueOf(var10.getValue());
-            String[] var13 = var11.split("[^A-Z0-9]");
-            StringBuilder var14 = new StringBuilder();
-
-            for(int var15 = 0; var15 < var13.length; ++var15) {
-                if (!ExcelUtil.isHave(JmConst.JIMUREPORT_FUNCTION, var13[var15]) && oConvertUtils.isNotEmpty(var13[var15])) {
-                    var14.append(var13[var15]).append(",");
-                }
-            }
-
-            String var24 = var14.toString();
-            String[] var16 = var24.split(",");
-            if (var11.contains(",")) {
-                for(int var17 = 0; var17 < var16.length; ++var17) {
-                    if (var8.equals(var16[var17])) {
-                        return true;
-                    }
-                }
-            }
-
-            if (var11.contains(":") && var16.length == 2) {
-                String var25 = var16[0];
-                String var18 = var16[1];
-                var25 = var25.replaceAll("[^a-zA-Z].*", "");
-                var18 = var18.replaceAll("[^a-zA-Z].*", "");
-                String var19 = var16[0].replaceAll("[^0-9]", "");
-                String var20 = var16[1].replaceAll("[^0-9]", "");
-                int var21 = ExcelColumn.a(var25, var25.length());
-                int var22 = ExcelColumn.a(var18, var18.length());
-                int var23 = ExcelColumn.a(var7, var7.length());
-                if (Integer.parseInt(var19) <= Integer.parseInt(var6) && Integer.parseInt(var6) <= Integer.parseInt(var20) && var21 <= var23 && var23 <= var22) {
-                    return true;
-                }
-            }
-        }
-
-        return false;
-    }
-
-    private void a(Map<String, JSONObject> var1, Workbook var2, Map<String, CellStyle> var3) {
-        Iterator var4 = var1.entrySet().iterator();
-
-        while(true) {
-            Entry var5;
-            JSONObject var7;
-            XSSFCellStyle var8;
-            do {
-                do {
-                    do {
-                        CellStyle var6;
-                        do {
-                            if (!var4.hasNext()) {
-                                return;
-                            }
-
-                            var5 = (Entry)var4.next();
-                            var6 = (CellStyle)var3.get(var5.getKey());
-                        } while(null != var6);
-
-                        var7 = (JSONObject)var5.getValue();
-                    } while(var7 == null);
-                } while("null".equals(var7));
-
-                var8 = (XSSFCellStyle)var2.createCellStyle();
-            } while(null == var7);
-
-            String var9;
-            if (!var7.containsKey("align")) {
-                var8.setAlignment(HorizontalAlignment.LEFT);
-            } else {
-                var9 = var7.getString("align").toUpperCase();
-                var8.setAlignment(HorizontalAlignment.valueOf(var9));
-            }
-
-            if (null != var7 && !var7.containsKey("valign")) {
-                var8.setVerticalAlignment(VerticalAlignment.valueOf("center".toUpperCase()));
-            } else {
-                var9 = var7.getString("valign").toUpperCase();
-                if ("MIDDLE".equals(var9)) {
-                    var9 = "center".toUpperCase();
-                }
-
-                var8.setVerticalAlignment(VerticalAlignment.valueOf(var9));
-            }
-
-            if (null == var7 || var7.containsKey("bgcolor")) {
-                var9 = var7.getString("bgcolor");
-                XSSFColor var10 = new XSSFColor();
-                if (var9.indexOf("#") != -1 && var9.length() > 6) {
-                    String var11 = var9.replaceAll("#", "");
-                    if (var11.length() == 6) {
-                        byte[] var12 = new byte[]{(byte)Integer.parseInt(var11.substring(0, 2), 16), (byte)Integer.parseInt(var11.substring(2, 4), 16), (byte)Integer.parseInt(var11.substring(4, 6), 16)};
-                        var10.setRGB(var12);
-                    }
-                }
-
-                var8.setFillForegroundColor(var10);
-                var8.setFillBackgroundColor(var10);
-                var8.setFillPattern(FillPatternType.BIG_SPOTS);
-            }
-
-            XSSFColor var14;
-            if (null != var7 && var7.containsKey("font") || var7.containsKey("underline") || var7.containsKey("strike") || var7.containsKey("color")) {
-                XSSFFont var18 = (XSSFFont)var2.createFont();
-                JSONObject var17 = (JSONObject)var7.get("font");
-                Object var22 = var7.get("underline");
-                Object var25 = var7.get("strike");
-                if (null != var17) {
-                    if (var17.containsKey("name")) {
-                        var18.setFontName(var17.getString("name"));
-                    }
-
-                    if (var17.containsKey("italic")) {
-                        var18.setItalic(true);
-                    }
-
-                    if (var17.containsKey("size")) {
-                        var18.setFontHeightInPoints(var17.getShort("size"));
-                    }
-
-                    if (var17.containsKey("bold")) {
-                        boolean var13 = var17.getBoolean("bold");
-                        var18.setBold(var13);
-                    }
-                }
-
-                if (null != var22) {
-                    var18.setUnderline((byte)1);
-                }
-
-                if (null != var25) {
-                    var18.setStrikeout(true);
-                }
-
-                if (null != var7 && var7.containsKey("color")) {
-                    String var27 = var7.getString("color");
-                    var14 = new XSSFColor();
-                    if (var27.length() > 6) {
-                        if (var27.contains("rgb")) {
-                            var27 = var27.replace("rgb", "").replace("(", "").replace(")", "");
-                            String[] var15 = var27.split(",");
-                            if (var15.length == 3) {
-                                byte[] var16 = new byte[]{(byte)Integer.parseInt(var15[0]), (byte)Integer.parseInt(var15[1]), (byte)Integer.parseInt(var15[2])};
-                                var14.setRGB(var16);
-                            }
-                        } else if (var27.contains("#")) {
-                            byte[] var29 = new byte[]{(byte)Integer.parseInt(var27.substring(1, 3), 16), (byte)Integer.parseInt(var27.substring(3, 5), 16), (byte)Integer.parseInt(var27.substring(5, 7), 16)};
-                            var14.setRGB(var29);
-                        }
-                    }
-
-                    var18.setColor(var14);
-                }
-
-                var8.setFont(var18);
-            }
-
-            if (var7.containsKey("border")) {
-                JSONObject var20 = var7.getJSONObject("border");
-                JSONArray var19 = var20.getJSONArray("right");
-                JSONArray var24 = var20.getJSONArray("top");
-                JSONArray var26 = var20.getJSONArray("left");
-                JSONArray var28 = var20.getJSONArray("bottom");
-                if (null != var24 && var24.size() > 1) {
-                    var8.setBorderTop(BorderStyle.THIN);
-                    var14 = this.b(var24.get(1).toString());
-                    var8.setTopBorderColor(var14);
-                }
-
-                if (null != var28 && var28.size() > 1) {
-                    var8.setBorderBottom(BorderStyle.THIN);
-                    var14 = this.b(var28.get(1).toString());
-                    var8.setBottomBorderColor(var14);
-                }
-
-                if (null != var26 && var26.size() > 1) {
-                    var8.setBorderLeft(BorderStyle.THIN);
-                    var14 = this.b(var26.get(1).toString());
-                    var8.setLeftBorderColor(var14);
-                }
-
-                if (null != var19 && var19.size() > 1) {
-                    var8.setBorderRight(BorderStyle.THIN);
-                    var14 = this.b(var19.get(1).toString());
-                    var8.setRightBorderColor(var14);
-                }
-            }
-
-            if (var7.containsKey("format")) {
-                DataFormat var23 = var2.createDataFormat();
-                String var21 = var7.getString("format");
-                if ("percent".equals(var21)) {
-                    var8.setDataFormat(var23.getFormat("0.00%"));
-                }
-
-                if ("rmb".equals(var21)) {
-                    var8.setDataFormat(var23.getFormat("¥#,##0"));
-                }
-
-                if ("usd".equals(var21)) {
-                    var8.setDataFormat(var23.getFormat("$#,##0"));
-                }
-
-                if ("eur".equals(var21)) {
-                    var8.setDataFormat(var23.getFormat("€#,##0"));
-                }
-            }
-
-            var8.setWrapText(true);
-            var3.put((String) var5.getKey(), var8);
-        }
-    }
-
-    private void a(Sheet var1, JSONObject var2) {
-        var1.setDefaultColumnWidth(12);
-        Iterator var3 = var2.keySet().iterator();
-
-        while(var3.hasNext()) {
-            String var4 = (String)var3.next();
-            JSONObject var5 = (JSONObject)var2.get(var4);
-            var1.setColumnWidth(Integer.parseInt(var4), 35 * (int)((double)var5.getInteger("width") + 0.8D));
-        }
-
-    }
-
-    private JSONObject b(JSONObject var1) {
-        ArrayList var2 = new ArrayList();
-        Iterator var3 = var1.keySet().iterator();
-
-        while(var3.hasNext()) {
-            String var4 = (String)var3.next();
-            if (oConvertUtils.isNotEmpty(var4) && !"NaN".equals(var4) && !"len".equals(var4)) {
-                var2.add(Integer.parseInt(var4));
-            }
-        }
-
-        Collections.sort(var2);
-        JSONArray var9 = new JSONArray();
-        JSONObject var5 = new JSONObject(true);
-        Iterator var6 = var2.iterator();
-
-        while(var6.hasNext()) {
-            Integer var7 = (Integer)var6.next();
-            JSONObject var8 = var1.getJSONObject(String.valueOf(var7));
-            var9.add(var8);
-            var5.put(String.valueOf(var7), var8);
-        }
-
-        return var5;
-    }
-
-    private void a(JSONObject var1, Sheet var2, SXSSFWorkbook var3, Map var4, Map<String, String> var5, Map<String, JSONObject> var6) {
-        Iterator var7 = var1.keySet().iterator();
-
-        while(true) {
-            String var8;
-            JSONObject var9;
-            do {
-                do {
-                    do {
-                        do {
-                            if (!var7.hasNext()) {
-                                return;
-                            }
-
-                            var8 = (String)var7.next();
-                        } while("len".equals(var8));
-                    } while("cells".equals(var8));
-                } while("isDrag".equals(var8));
-
-                var9 = var1.getJSONObject(var8).getJSONObject("cells");
-            } while(null == var9);
-
-            Iterator var10 = var9.keySet().iterator();
-
-            while(var10.hasNext()) {
-                String var11 = (String)var10.next();
-                JSONObject var12 = var9.getJSONObject(var11);
-                if (var12.containsKey("merge")) {
-                    String var13 = var12.getString("merge");
-                    String[] var14 = a(var13, "[", "]").split(",");
-                    int var15 = Integer.parseInt(var14[0]);
-                    int var16 = Integer.parseInt(var14[1]);
-                    if (var13 != null && !"".equals(var13)) {
-                        JSONObject var17 = new JSONObject();
-                        int var18 = Integer.parseInt(var8);
-                        int var19 = var15 + var18;
-                        int var20 = Integer.parseInt(var11);
-                        int var21 = var16 + var20;
-                        CellRangeAddress var22 = new CellRangeAddress(var18, var19, var20, var21);
-                        if (var12.containsKey("style")) {
-                            String var23 = var12.getString("style");
-                            JSONObject var24 = (JSONObject)var4.get(var23);
-                            if (null != var24 && var24.containsKey("border")) {
-                                JSONObject var25 = var24.getJSONObject("border");
-                                Iterator var26 = var25.keySet().iterator();
-                                JSONArray var27 = var25.getJSONArray("right");
-                                JSONArray var28 = var25.getJSONArray("top");
-                                if (null != var28 && var28.size() > 1) {
-                                    RegionUtil.setBorderTop(BorderStyle.THIN, var22, var2);
-                                    var17.put("top", var28.get(1).toString());
-                                }
-
-                                if (null != var27 && var27.size() > 1) {
-                                    RegionUtil.setBorderRight(BorderStyle.THIN, var22, var2);
-                                    var17.put("right", var27.get(1).toString());
-                                }
-
-                                JSONArray var29 = var25.getJSONArray("left");
-                                if (null != var29 && var29.size() > 1) {
-                                    RegionUtil.setBorderLeft(BorderStyle.THIN, var22, var2);
-                                    var17.put("left", var29.get(1).toString());
-                                }
-
-                                JSONArray var30 = var25.getJSONArray("bottom");
-                                if (null != var30 && var30.size() > 1) {
-                                    RegionUtil.setBorderBottom(BorderStyle.THIN, var22, var2);
-                                    var17.put("bottom", var30.get(1).toString());
-                                }
-                            }
-
-                            String var31 = var18 + "," + var19 + "," + var20 + "," + var21;
-                            var6.put(var31, var17);
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    public static String a(String var0, String var1, String var2) {
-        int var3 = var0.indexOf(var1);
-        int var4 = var0.indexOf(var2);
-        if (var3 < 0) {
-            return "";
-        } else if (var4 < 0) {
-            return "";
-        } else {
-            String var5 = var0.substring(var3, var4).substring(var1.length());
-            return var5;
-        }
-    }
-
-    private void a(Sheet var1, XSSFWorkbook var2, JSONArray var3, Map<String, String> var4, Map<String, Object> var5) {
-        Drawing var6 = var1.createDrawingPatriarch();
-        HttpURLConnection var7 = null;
-
-        try {
-            for(int var9 = 0; var9 < var3.size(); ++var9) {
-                boolean var10 = false;
-                boolean var11 = false;
-                String var12 = "";
-                String var13 = "";
-                String var14 = "";
-                JSONObject var15 = var3.getJSONObject(var9);
-                int var37 = Integer.valueOf(var15.getString("col"));
-                int var36 = Integer.valueOf(var15.getString("row"));
-                var13 = (String)var15.get("width");
-                var14 = (String)var15.get("height");
-                var12 = (String)var15.get("src");
-                String var16 = var15.getString("layer_id");
-                Object var17 = var15.get("colspan");
-                Object var18 = var15.get("rowspan");
-                Object var19 = var5.get(var16);
-                if (null != var19) {
-                    String[] var20 = String.valueOf(var19).split(",");
-                    var36 = Integer.parseInt(var20[0]);
-                    var37 = Integer.parseInt(var20[1]);
-                }
-
-                if (var14.contains("px") && var13.contains("px")) {
-                    var14 = var14.substring(0, var14.lastIndexOf("px"));
-                    var13 = var13.substring(0, var13.lastIndexOf("px"));
-                }
-
-                byte[] var8;
-                if (var12.contains("http")) {
-                    URL var38 = new URL(var12);
-                    if (var12.contains("https")) {
-                        var8 = b.a(var12);
-                    } else {
-                        var7 = (HttpURLConnection)var38.openConnection();
-                        var7.setRequestMethod("GET");
-                        var7.setConnectTimeout(50000);
-                        InputStream var21 = var7.getInputStream();
-                        var8 = a(var21);
-                    }
-                } else {
-                    var8 = this.c(var12);
-                }
-
-                boolean var39 = false;
-                String var41 = (String)var4.get(var36 + "," + var37);
-                boolean var22 = false;
-                int var40;
-                int var42;
-                if (null != var17 && null != var18) {
-                    var42 = var36 + Integer.parseInt(var18.toString());
-                    var40 = var37 + Integer.parseInt(var17.toString());
-                } else {
-                    if (oConvertUtils.isNotEmpty(var41)) {
-                        String var23 = var41.split(",")[0];
-                        var42 = Integer.parseInt(var23);
-                    } else {
-                        var42 = var36 + Integer.parseInt(String.format("%.0f", Float.parseFloat(var14) / 25.0F));
-                    }
-
-                    Integer var43 = this.a(var1, var36, (float)Integer.parseInt(var14));
-                    if (var43 > 0) {
-                        var42 = var43;
-                    } else {
-                        var42 += var36;
-                    }
-
-                    var40 = Integer.parseInt(String.format("%.0f", Float.parseFloat(var13) / 100.0F));
-                    var40 += var37;
-                }
-
-                Object var44 = var15.get("isBackend");
-                if (null != var44 && (Boolean)var44) {
-                    int var45 = var2.addPicture(var8, 6);
-                    XSSFPictureData var25 = (XSSFPictureData)var2.getAllPictures().get(var45);
-
-                    try {
-                        for(int var26 = 0; var26 < var2.getNumberOfSheets(); ++var26) {
-                            XSSFSheet var46 = var2.getSheetAt(var26);
-                            PackagePartName var28 = var25.getPackagePart().getPartName();
-                            String var29 = XSSFRelation.IMAGES.getRelation();
-                            PackageRelationship var30 = var46.getPackagePart().addRelationship(var28, TargetMode.EXTERNAL, var29, (String)null);
-                            var46.getCTWorksheet().addNewPicture().setId(var30.getId());
-                        }
-                    } catch (Exception var31) {
-                        XSSFClientAnchor var27 = new XSSFClientAnchor(0, 0, Integer.parseInt(var13), Integer.parseInt(var14), var37, var36, var40, var42);
-                        var6.createPicture(var27, var2.addPicture(var8, 5));
-                    }
-                } else {
-                    XSSFClientAnchor var24 = new XSSFClientAnchor(0, 0, Integer.parseInt(var13), Integer.parseInt(var14), var37, var36, var40, var42);
-                    var6.createPicture(var24, var2.addPicture(var8, 5));
-                }
-            }
-        } catch (MalformedURLException var32) {
-            var32.printStackTrace();
-        } catch (ProtocolException var33) {
-            var33.printStackTrace();
-        } catch (IOException var34) {
-            var34.printStackTrace();
-        } catch (Exception var35) {
-            var35.printStackTrace();
-        }
-
-    }
-
-    private byte[] c(String var1) {
-        File var2 = new File(this.jimuReportUploadConfig.getPath().getUpload() + File.separator + var1);
-
-        try {
-            byte[] var3 = Files.readAllBytes(var2.toPath());
-            return var3;
-        } catch (IOException var4) {
-            var4.printStackTrace();
-            return null;
-        }
-    }
-
-    private void a(Sheet var1, XSSFWorkbook var2, JSONObject var3) {
-        Drawing var4 = var1.createDrawingPatriarch();
-        Object var5 = null;
-        String var6 = "";
-        String var7 = "";
-        String var8 = "";
-        Object var18 = var3.get("width");
-        Object var19 = var3.get("height");
-        var6 = var3.getString("path");
-        byte[] var9 = this.a(var6);
-        XSSFPictureData var10 = null;
-        boolean var11 = false;
-
-        try {
-            int var20 = var2.addPicture(var9, 6);
-            var10 = (XSSFPictureData)var2.getAllPictures().get(var20);
-        } catch (NullPointerException var17) {
-            a.debug("数据为空", var17.getMessage());
-        }
-
-        if (var10 != null) {
-            for(int var12 = 0; var12 < var2.getNumberOfSheets(); ++var12) {
-                XSSFSheet var13 = var2.getSheetAt(var12);
-                PackagePartName var14 = var10.getPackagePart().getPartName();
-                String var15 = XSSFRelation.IMAGES.getRelation();
-                PackageRelationship var16 = var13.getPackagePart().addRelationship(var14, TargetMode.EXTERNAL, var15, (String)null);
-                var13.getCTWorksheet().addNewPicture().setId(var16.getId());
-            }
-        }
-
-    }
-
-    private void a(Sheet var1, SXSSFWorkbook var2, JSONArray var3, Map<String, Object> var4, JSONObject var5, JSONObject var6) {
-        Drawing var7 = var1.createDrawingPatriarch();
-        Object var8 = null;
-
-        try {
-            for(int var9 = 0; var9 < var3.size(); ++var9) {
-                boolean var10 = false;
-                boolean var11 = false;
-                String var12 = "";
-                String var13 = "";
-                String var14 = "";
-                JSONObject var15 = var3.getJSONObject(var9);
-                int var33 = Integer.valueOf(var15.getString("col"));
-                int var32 = Integer.valueOf(var15.getString("row"));
-                var13 = (String)var15.get("width");
-                var14 = (String)var15.get("height");
-                var12 = (String)var15.get("url");
-                String var16 = var15.getString("layer_id");
-                Object var17 = var4.get(var16);
-                if (null != var17) {
-                    String[] var18 = String.valueOf(var17).split(",");
-                    var32 = Integer.parseInt(var18[0]);
-                    var33 = Integer.parseInt(var18[1]);
-                }
-
-                byte[] var34 = new byte[0];
-                var34 = oConvertUtils.decodeBase64(var12);
-                int var20 = 0;
-                float var21 = Float.parseFloat(var14);
-
-                for(int var22 = var32; var22 < var32 + 99; ++var22) {
-                    Row var23 = var1.getRow(var22);
-                    if (var23 == null) {
-                        break;
-                    }
-
-                    ++var20;
-                    var21 -= var23.getHeightInPoints();
-                }
-
-                Object var35 = var15.get("colspan");
-                Object var36 = var15.get("rowspan");
-                boolean var24 = false;
-                int var37;
-                if (null != var35 && null != var36) {
-                    var20 = var32 + Integer.parseInt(var36.toString());
-                    var37 = var33 + Integer.parseInt(var35.toString());
-                } else {
-                    var20 += Integer.parseInt(String.format("%.0f", var21 / 25.0F));
-                    var37 = Integer.parseInt(String.format("%.0f", Float.parseFloat(var13) / 100.0F));
-                    var37 += var33;
-                }
-
-                int var25 = 0;
-
-                int var26;
-                for(var26 = var33; var26 < var37; ++var26) {
-                    Object var27 = var5.get(var26);
-                    if (oConvertUtils.isNotEmpty(var27)) {
-                        JSONObject var28 = (JSONObject)var27;
-                        Object var29 = var28.get("width");
-                        var25 += Integer.valueOf(String.valueOf(var29));
-                    } else {
-                        var25 += 100;
-                    }
-                }
-
-                if (var25 > Integer.parseInt(var13)) {
-                    var25 -= Integer.parseInt(var13);
-                } else {
-                    var25 = 0;
-                }
-
-                var25 = var25 * 3 / 4;
-                var26 = 0;
-
-                for(int var38 = var32; var38 < var20; ++var38) {
-                    Object var40 = var6.get(var38);
-                    if (oConvertUtils.isNotEmpty(var40)) {
-                        JSONObject var41 = (JSONObject)var40;
-                        Object var30 = var41.get("height");
-                        if (oConvertUtils.isNotEmpty(var30)) {
-                            var26 += Integer.parseInt(var30.toString());
-                        } else {
-                            var26 += 25;
-                        }
-                    } else {
-                        var26 += 25;
-                    }
-                }
-
-                if (var26 > Integer.parseInt(var14)) {
-                    var26 -= Integer.parseInt(var14);
-                } else {
-                    var26 = 0;
-                }
-
-                var26 = var26 * 3 / 4;
-                XSSFClientAnchor var39 = new XSSFClientAnchor(0, 0, 12700 * -var25, 12700 * -var26, var33, var32, var37, var20);
-                var7.createPicture(var39, var2.addPicture(var34, 5));
-            }
-        } catch (Exception var31) {
-            var31.printStackTrace();
-        }
-
-    }
-
-    private void a(Sheet var1, Workbook var2, JSONArray var3, List var4, Map<String, Object> var5) {
-        Drawing var6 = var1.createDrawingPatriarch();
-
-        for(int var7 = 0; var7 < var3.size(); ++var7) {
-            JSONObject var8 = var3.getJSONObject(var7);
-            boolean var9 = false;
-            boolean var10 = false;
-            String var11 = "";
-            String var12 = "";
-            int var25 = Integer.valueOf(var8.getString("col"));
-            int var24 = Integer.valueOf(var8.getString("row"));
-            var11 = String.valueOf(var8.get("width"));
-            var12 = String.valueOf(var8.get("height"));
-            String var13 = (String)var8.get("layer_id");
-            String var14 = "";
-            Object var15 = var5.get(var13);
-            if (null != var15) {
-                String[] var16 = String.valueOf(var15).split(",");
-                var24 = Integer.parseInt(var16[0]);
-                var25 = Integer.parseInt(var16[1]);
-            }
-
-            Object var18;
-            for(int var26 = 0; var26 < var4.size(); ++var26) {
-                Map var17 = (Map)var4.get(var26);
-                var18 = var17.get("id");
-                if (var13.equals(var18.toString())) {
-                    var14 = (String)var17.get("base64");
-                }
-            }
-
-            byte[] var27 = new byte[0];
-            var27 = oConvertUtils.decodeBase64(var14.replace("data:image/png;base64,", ""));
-            var18 = var8.get("colspan");
-            Object var19 = var8.get("rowspan");
-            boolean var20 = false;
-            boolean var21 = false;
-            float var22 = Float.parseFloat(var12);
-            int var28;
-            int var29;
-            if (null != var18 && null != var19) {
-                var29 = var24 + Integer.parseInt(var19.toString());
-                var28 = var25 + Integer.parseInt(var18.toString());
-            } else {
-                var28 = var24 + Integer.parseInt(String.format("%.0f", Float.parseFloat(var12) / 25.0F));
-                var29 = Integer.parseInt(String.format("%.0f", Float.parseFloat(var11) / 100.0F));
-            }
-
-            XSSFClientAnchor var23 = new XSSFClientAnchor(0, 0, Integer.parseInt(var11), Integer.parseInt(var12), var25, var24, var28, var29);
-            var6.createPicture(var23, var2.addPicture(var27, 5));
-        }
-
-    }
-
-    private static byte[] a(InputStream var0) throws Exception {
-        ByteArrayOutputStream var1 = new ByteArrayOutputStream();
-        byte[] var2 = new byte[1024];
-        boolean var3 = false;
-
-        int var4;
-        while((var4 = var0.read(var2)) != -1) {
-            var1.write(var2, 0, var4);
-        }
-
-        var0.close();
-        return var1.toByteArray();
-    }
-
-    public Integer a(Sheet var1, Integer var2, float var3) {
-        int var4 = 0;
-        Double var5 = 0.0D;
-
-        for(Iterator var6 = var1.iterator(); var6.hasNext(); ++var4) {
-            Row var7 = (Row)var6.next();
-            if (var2 <= var4) {
-                var5 = var5 + (double)var7.getHeightInPoints();
-            }
-
-            if (var5 != 0.0D && (double)var3 - var5 <= 10.0D && var4 > 0) {
-                return var4;
-            }
-
-            if (var5 >= (double)var3 && var4 > 0) {
-                return var4;
-            }
-        }
-
-        return 0;
-    }
-
-    public Integer a(Sheet var1, Integer var2, Integer var3, float var4) {
-        float var5 = 0.0F;
-        Row var6 = var1.getRow(var2);
-        Iterator var7 = var6.iterator();
-
-        while(var7.hasNext()) {
-            Cell var8 = (Cell)var7.next();
-            if (var8.getColumnIndex() >= var3) {
-                float var9 = var1.getColumnWidthInPixels(var8.getColumnIndex());
-                var5 += var9;
-                if (var5 >= var4) {
-                    return var8.getColumnIndex();
-                }
-
-                float var10 = var4 - var5;
-                if (var10 < 30.0F) {
-                    return var8.getColumnIndex();
-                }
-            }
-        }
-
-        return 0;
-    }
-
-    public String a(JSONObject var1, Map var2, String var3) throws Exception {
-        String var4 = var1.getString("style");
-        JSONObject var5 = (JSONObject)var2.get(var4);
-        if (null != var5 && var4 != null && !"null".equals(var4)) {
-            Object var6 = var5.get("format");
-            if (null != var6) {
-                SimpleDateFormat var7 = ExcelUtil.getFormat(var6.toString());
-                if (null != var7 && oConvertUtils.isNotEmpty(var3)) {
-                    SimpleDateFormat var8 = ExcelUtil.getDataFormat(var3);
-                    if (null != var8) {
-                        Date var9 = var8.parse(var3);
-
-                        try {
-                            String var10 = var7.format(var9);
-                            a.info("日期格式化之后的文本:" + var10);
-                            return var10;
-                        } catch (Exception var11) {
-                            a.info("日期格式不正确:" + var11.getMessage());
-                        }
-                    } else {
-                        String var12 = d.a(var3, var7);
-                        if (oConvertUtils.isNotEmpty(var12)) {
-                            return var12;
-                        }
-                    }
-                }
-            }
-        }
-
-        return "";
-    }
-
-    private void a(Workbook var1, Sheet var2, Map<String, String> var3, Map<String, String> var4, Map<String, JSONObject> var5, Map<String, List<String>> var6) {
-        Set var7 = var6.keySet();
-        Iterator var8 = var7.iterator();
-
-        while(true) {
-            String var11;
-            String var12;
-            Cell var13;
-            String var14;
-            String var15;
-            String var16;
-            JSONObject var17;
-            Row var18;
-            int var19;
-            int var20;
-            do {
-                do {
-                    if (!var8.hasNext()) {
-                        return;
-                    }
-
-                    String var9 = (String)var8.next();
-                    List var10 = (List)var6.get(var9);
-                    var11 = (String)var10.get(0);
-                    var12 = (String)var10.get(1);
-                    var13 = var2.getRow(Integer.parseInt(var11)).getCell(Integer.parseInt(var12));
-                    var14 = ExcelUtil.getCellValueByCell(var13);
-                } while(!var14.contains("|"));
-
-                var15 = (String)var3.get(var13.getRowIndex() + "," + var13.getColumnIndex());
-                var16 = (String)var4.get(var13.getRowIndex() + "," + var13.getColumnIndex());
-                var17 = (JSONObject)var5.get(var13.getRowIndex() + "," + var13.getColumnIndex());
-                var18 = var2.getRow(Integer.parseInt(var11));
-                var19 = (int)var13.getSheet().getColumnWidthInPixels(var13.getColumnIndex());
-                var20 = (int)var18.getHeightInPoints();
-            } while(!oConvertUtils.isNotEmpty(var15));
-
-            int var21 = 0;
-            int var22 = 0;
-            int var23 = Integer.parseInt(var11);
-            int var24 = Integer.parseInt(var12);
-            if (oConvertUtils.isNotEmpty(var16)) {
-                String[] var25 = var16.split(",");
-                int var26 = Integer.parseInt(var25[0]);
-                int var27 = Integer.parseInt(var25[1]);
-                var23 = var26;
-                var24 = var27;
-
-                int var28;
-                for(var28 = var18.getRowNum() + 1; var28 < var26 + 1; ++var28) {
-                    Row var29 = var2.getRow(var28);
-                    if (var29 != null) {
-                        var22 += (int)var2.getRow(var28).getHeightInPoints();
-                    }
-                }
-
-                for(var28 = var13.getColumnIndex() + 1; var28 < var27 + 1; ++var28) {
-                    var21 += (int)var2.getColumnWidthInPixels(var28);
-                }
-            }
-
-            var19 += var21;
-            var20 += var22;
-            var13.setCellValue("");
-            if (var2 instanceof SXSSFSheet) {
-                try {
-                    byte[] var32 = ExcelUtil.getImage(var14, var15, var19, var20, var17);
-                    Drawing var33 = var2.createDrawingPatriarch();
-                    XSSFClientAnchor var34 = new XSSFClientAnchor(12700, 12700, -12700, -12700, Integer.parseInt(var12), Integer.parseInt(var11), var24 + 1, var23 + 1);
-                    var34.setAnchorType(AnchorType.MOVE_AND_RESIZE);
-                    var33.createPicture(var34, var1.addPicture(var32, 5));
-                } catch (IOException var31) {
-                    var31.printStackTrace();
-                }
-            }
-
-            if (var2 instanceof XSSFSheet) {
-                try {
-                    a(var14, var1, var2, var19, var20, var15, Integer.parseInt(var11), Integer.parseInt(var12), var23 + 1, var24 + 1, var17);
-                } catch (Exception var30) {
-                    var30.printStackTrace();
-                }
-            }
-        }
-    }
-
-    public static void a(String var0, Workbook var1, Sheet var2, int var3, int var4, String var5, int var6, int var7, int var8, int var9, JSONObject var10) {
-        String[] var11 = var0.split("\\|");
-        int var12 = var11.length;
-        Cell var13 = var2.getRow(var6).getCell(var7);
-        CellStyle var14 = var13.getCellStyle();
-        var14.setWrapText(true);
-        Font var15 = var1.getFontAt(var14.getFontIndex());
-        var15.setFontName("Microsoft YaHei");
-        var15.setFontHeightInPoints((short)10);
-        CreationHelper var16 = var1.getCreationHelper();
-        String var17 = "";
-        if (null != var10 && var10.containsKey("color")) {
-            var17 = var10.getString("color");
-        }
-
-        String var18;
-        if (var5.equals("lefttop")) {
-            var18 = a(var11, var3, var4);
-            var13.setCellValue(var18);
-            Drawing var19 = var2.createDrawingPatriarch();
-            if (var11.length == 2) {
-                ExcelUtil.paintLine(var19, var19.createAnchor(0, 0, 0, 0, var7, var6, var9, var8), var5, var17);
-            } else if (var11.length == 3) {
-                ExcelUtil.paintLine(var19, var19.createAnchor(0, 0, 0, -((int)((double)var4 / 2.5D)) * 12700, var7, var6, var9, var8), var5, var17);
-                ExcelUtil.paintLine(var19, var19.createAnchor(0, 0, -var3 / 4 * 12700, 0, var7, var6, var9, var8), var5, var17);
-            }
-        } else {
-            var18 = b(var11, var3, var4);
-            var13.setCellValue(var18);
-            a(var2, var16, var7, var6, var9, var8, var4, var3, var12 - 1, var5, var17);
-        }
-
-        var14.setFont(var15);
-        var13.setCellStyle(var14);
-    }
-
-    public static String a(String[] var0, int var1, int var2) {
-        int var3 = var0.length;
-        if (var3 < 1 && var3 > 3) {
-            return "";
-        } else {
-            int var4 = var1 / 4;
-            if (var3 == 2) {
-                var4 -= var0[1].length();
-                if (var1 < 150) {
-                    var4 -= var0[1].length() * 3;
-                }
-            } else {
-                if (var1 < 186) {
-                    var4 -= var0[2].length();
-                }
-
-                if (var1 < 160) {
-                    if (var0[2].length() == 2) {
-                        var4 -= var0[2].length() * 2;
-                    } else if (var0[2].length() > 2) {
-                        var4 -= var0[2].length();
-                    }
-                }
-
-                var4 -= var0[2].length();
-                if (var0[2].length() > 3) {
-                    var4 -= var0[2].length();
-                }
-            }
-
-            String var5 = "";
-
-            int var6;
-            for(var6 = 0; var6 < var4; ++var6) {
-                var5 = var5 + " ";
-            }
-
-            var6 = var2 / 20;
-            if (var3 == 2) {
-                var5 = var5 + var0[1];
-            } else {
-                var5 = var5 + var0[2];
-            }
-
-            int var7;
-            for(var7 = 0; var7 < var6; ++var7) {
-                var5 = var5 + "\n";
-            }
-
-            if (var3 == 2) {
-                var5 = var5 + var0[0];
-            }
-
-            if (var3 == 3) {
-                var5 = var5 + var0[0];
-                var7 = var1 / 4;
-                if (var1 < 270) {
-                    var7 = var7 - var0[0].length() * 2 - var0[1].length() * 2;
-                }
-
-                if (var1 < 160) {
-                    var7 = var7 - var0[0].length() - var0[1].length();
-                }
-
-                var7 = var7 - var0[0].length() - var0[1].length();
-                if (var0[0].length() > 3) {
-                    var7 -= var0[0].length();
-                }
-
-                if (var0[1].length() > 3) {
-                    if (var1 > 270) {
-                        var7 -= var0[1].length() * 2;
-                    } else {
-                        var7 -= var0[1].length();
-                    }
-                }
-
-                String var8 = "";
-
-                for(int var9 = 0; var9 < var7; ++var9) {
-                    var8 = var8 + " ";
-                }
-
-                var5 = var5 + var8 + var0[1];
-            }
-
-            return var5;
-        }
-    }
-
-    public static String b(String[] var0, int var1, int var2) {
-        int var3 = var0.length;
-        if (var3 < 1 && var3 > 3) {
-            return "";
-        } else {
-            int var4 = var1 / 4;
-            if (var3 == 2) {
-                var4 -= var0[1].length();
-                if (var1 < 240) {
-                    if (var0[1].length() > 3) {
-                        var4 -= var0[1].length();
-                    }
-
-                    var4 -= var0[1].length();
-                }
-            } else {
-                if (var1 < 240) {
-                    if (var0[2].length() > 3) {
-                        var4 -= var0[2].length();
-                    }
-
-                    var4 -= var0[2].length();
-                }
-
-                var4 -= var0[2].length();
-            }
-
-            String var5 = "";
-            int var6 = var2 / 20;
-            var5 = var5 + var0[0];
-            int var7;
-            if (var3 == 2) {
-                for(var7 = 0; var7 < var6; ++var7) {
-                    var5 = var5 + "\n";
-                }
-
-                for(var7 = 0; var7 < var4; ++var7) {
-                    var5 = var5 + " ";
-                }
-
-                var5 = var5 + var0[1];
-            }
-
-            if (var3 == 3) {
-                var7 = var1 / 4;
-                var7 = var7 - var0[0].length() * 2 - var0[1].length() * 2;
-                if (var1 < 150) {
-                    var7 = var7 - var0[0].length() * 2 - var0[1].length() * 2;
-                }
-
-                if (var0[1].length() > 2) {
-                    if (var1 < 260) {
-                        var7 -= var0[1].length();
-                    }
-
-                    var7 -= var0[1].length();
-                }
-
-                if (var0[0].length() > 3) {
-                    var7 -= var0[0].length();
-                }
-
-                String var8 = " ";
-
-                int var9;
-                for(var9 = 0; var9 < var7; ++var9) {
-                    var8 = var8 + " ";
-                }
-
-                var5 = var5 + var8 + var0[1];
-
-                for(var9 = 0; var9 < var6; ++var9) {
-                    var5 = var5 + "\n";
-                }
-
-                for(var9 = 0; var9 < var7; ++var9) {
-                    var5 = var5 + " ";
-                }
-
-                var5 = var5 + var0[2];
-            }
-
-            return var5;
-        }
-    }
-
-    public static void a(Sheet var0, CreationHelper var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, String var9, String var10) {
-        Drawing var11;
-        ClientAnchor var12;
-        if (var8 == 1) {
-            var11 = var0.createDrawingPatriarch();
-            var12 = var1.createClientAnchor();
-            var12.setCol1(var2);
-            var12.setRow1(var3);
-            var12.setCol2(var4);
-            var12.setRow2(var5);
-            ExcelUtil.paintLine(var11, var12, var9, var10);
-        } else if (var8 == 2) {
-            var11 = var0.createDrawingPatriarch();
-            var12 = var1.createClientAnchor();
-            var12.setCol1(var2);
-            var12.setRow1(var3);
-            var12.setCol2(var4);
-            var12.setRow2(var5);
-            var12.setDx2(-var7 / 4 * 12700);
-            ExcelUtil.paintLine(var11, var12, var9, var10);
-            ClientAnchor var13 = var1.createClientAnchor();
-            Drawing var14 = var0.createDrawingPatriarch();
-            var13.setCol1(var2);
-            var13.setRow1(var3);
-            var13.setCol2(var4);
-            var13.setRow2(var5);
-            var13.setDy1((int)((double)var6 / 2.5D) * 12700);
-            ExcelUtil.paintLine(var14, var13, var9, var10);
-        }
-
-    }
-
-    private void a(Sheet var1, SXSSFWorkbook var2, List<Map<String, Object>> var3, Map<String, String> var4, Map<String, Object> var5) {
-        Drawing var6 = var1.createDrawingPatriarch();
-
-        for(int var7 = 0; var7 < var3.size(); ++var7) {
-            Map var8 = (Map)var3.get(var7);
-            boolean var9 = false;
-            boolean var10 = false;
-            int var23 = Integer.valueOf(var8.get("cell").toString());
-            int var22 = Integer.valueOf(var8.get("row").toString());
-            String var11 = var8.get("text").toString();
-            String var12 = var8.get("display").toString();
-            Map var13 = this.a(var1, var4, var22, var23);
-            Integer var14 = (Integer)var13.get("width");
-            Integer var15 = (Integer)var13.get("height");
-            Object var16 = null;
-            String var17 = (String)var8.get("layer_id");
-            Object var18 = var5.get(var17);
-            if (null != var18) {
-                String[] var19 = String.valueOf(var18).split(",");
-                var22 = Integer.parseInt(var19[0]);
-                var23 = Integer.parseInt(var19[1]);
-            }
-
-            byte[] var24;
-            if ("img".equals(var12)) {
-                var24 = this.a(var11);
-            } else {
-                var24 = GoogleBarCodeUtils.createCodeToFile(var11, var12, var14, var15);
-            }
-
-            String var25 = (String)var4.get(var22 + "," + var23);
-            if (oConvertUtils.isNotEmpty(var25)) {
-                String[] var20 = var25.split(",");
-                XSSFClientAnchor var21 = new XSSFClientAnchor(0, 0, var14, var15, var23, var22, Integer.parseInt(var20[1]) + 1, Integer.parseInt(var20[0]) + 1);
-                var6.createPicture(var21, var2.addPicture(var24, 5));
-            } else {
-                XSSFClientAnchor var26 = new XSSFClientAnchor(0, 0, var14, var15, var23, var22, var23 + 1, var22 + 1);
-                var6.createPicture(var26, var2.addPicture(var24, 5));
-            }
-        }
-
-    }
-
-    public byte[] a(String var1) {
-        URL var2 = null;
-        Object var3 = null;
-        byte[] var7;
-        if (var1.contains("http")) {
-            try {
-                var2 = new URL(var1);
-                if (var1.contains("https")) {
-                    var7 = b.a(var1);
-                    return var7;
-                } else {
-                    HttpURLConnection var4 = null;
-                    var4 = (HttpURLConnection)var2.openConnection();
-                    var4.setRequestMethod("GET");
-                    var4.setConnectTimeout(50000);
-                    InputStream var5 = var4.getInputStream();
-                    var7 = a(var5);
-                    return var7;
-                }
-            } catch (Exception var6) {
-                var6.printStackTrace();
-                return null;
-            }
-        } else {
-            var7 = this.c(var1);
-            return var7;
-        }
-    }
-
-    public Map<String, Integer> a(Sheet var1, Map<String, String> var2, Integer var3, Integer var4) {
-        HashMap var5 = new HashMap();
-        String var6 = (String)var2.get(var3 + "," + var4);
-        Row var7 = var1.getRow(var3);
-        Cell var8 = var7.getCell(var4);
-        var8.setCellValue("");
-        int var9 = (int)var8.getSheet().getColumnWidthInPixels(var8.getColumnIndex());
-        int var10 = (int)var7.getHeightInPoints();
-        int var11 = 0;
-        int var12 = 0;
-        int var13 = var3;
-        int var14 = var4;
-        if (oConvertUtils.isNotEmpty(var6)) {
-            String[] var15 = var6.split(",");
-            int var16 = Integer.parseInt(var15[0]);
-            int var17 = Integer.parseInt(var15[1]);
-
-            int var18;
-            for(var18 = var7.getRowNum() + 1; var18 < var16 + 1; ++var18) {
-                Row var19 = var1.getRow(var18);
-                if (var19 != null) {
-                    var12 += (int)var1.getRow(var18).getHeightInPoints();
-                }
-            }
-
-            for(var18 = var8.getColumnIndex() + 1; var18 < var17 + 1; ++var18) {
-                var11 += (int)var1.getColumnWidthInPixels(var18);
-            }
-        }
-
-        var9 += var11;
-        var10 += var12;
-        var5.put("width", var9);
-        var5.put("height", var10);
-        return var5;
-    }
-
-    public XSSFColor b(String var1) {
-        XSSFColor var2 = new XSSFColor();
-        if (var1.contains("rgb")) {
-            var1 = var1.replace("rgb", "").replace("(", "").replace(")", "");
-            String[] var3 = var1.split(",");
-            if (var3.length == 3) {
-                byte[] var4 = new byte[]{(byte)Integer.parseInt(var3[0]), (byte)Integer.parseInt(var3[1]), (byte)Integer.parseInt(var3[2])};
-                var2.setRGB(var4);
-            }
-        } else if (var1.contains("#") && var1.length() > 6) {
-            byte[] var5 = new byte[]{(byte)Integer.parseInt(var1.substring(1, 3), 16), (byte)Integer.parseInt(var1.substring(3, 5), 16), (byte)Integer.parseInt(var1.substring(5, 7), 16)};
-            var2.setRGB(var5);
-        }
-
-        return var2;
-    }
-}
+//package org.jeecg.modules.jmreport.desreport.service.a;
+//
+//import com.alibaba.fastjson.JSON;
+//import com.alibaba.fastjson.JSONArray;
+//import com.alibaba.fastjson.JSONObject;
+//import java.io.ByteArrayOutputStream;
+//import java.io.File;
+//import java.io.IOException;
+//import java.io.InputStream;
+//import java.net.HttpURLConnection;
+//import java.net.MalformedURLException;
+//import java.net.ProtocolException;
+//import java.net.URL;
+//import java.nio.file.Files;
+//import java.text.SimpleDateFormat;
+//import java.util.ArrayList;
+//import java.util.Collections;
+//import java.util.Date;
+//import java.util.HashMap;
+//import java.util.Iterator;
+//import java.util.List;
+//import java.util.Map;
+//import java.util.Set;
+//import java.util.Map.Entry;
+//import java.util.regex.Matcher;
+//import java.util.regex.Pattern;
+//import org.apache.poi.openxml4j.opc.PackagePartName;
+//import org.apache.poi.openxml4j.opc.PackageRelationship;
+//import org.apache.poi.openxml4j.opc.TargetMode;
+//import org.apache.poi.ss.usermodel.BorderStyle;
+//import org.apache.poi.ss.usermodel.Cell;
+//import org.apache.poi.ss.usermodel.CellStyle;
+//import org.apache.poi.ss.usermodel.ClientAnchor;
+//import org.apache.poi.ss.usermodel.CreationHelper;
+//import org.apache.poi.ss.usermodel.DataFormat;
+//import org.apache.poi.ss.usermodel.Drawing;
+//import org.apache.poi.ss.usermodel.FillPatternType;
+//import org.apache.poi.ss.usermodel.Font;
+//import org.apache.poi.ss.usermodel.HorizontalAlignment;
+//import org.apache.poi.ss.usermodel.Row;
+//import org.apache.poi.ss.usermodel.Sheet;
+//import org.apache.poi.ss.usermodel.VerticalAlignment;
+//import org.apache.poi.ss.usermodel.Workbook;
+//import org.apache.poi.ss.usermodel.ClientAnchor.AnchorType;
+//import org.apache.poi.ss.util.CellRangeAddress;
+//import org.apache.poi.ss.util.CellReference;
+//import org.apache.poi.ss.util.RegionUtil;
+//import org.apache.poi.xssf.streaming.SXSSFCell;
+//import org.apache.poi.xssf.streaming.SXSSFRow;
+//import org.apache.poi.xssf.streaming.SXSSFSheet;
+//import org.apache.poi.xssf.streaming.SXSSFWorkbook;
+//import org.apache.poi.xssf.usermodel.XSSFCell;
+//import org.apache.poi.xssf.usermodel.XSSFCellStyle;
+//import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
+//import org.apache.poi.xssf.usermodel.XSSFColor;
+//import org.apache.poi.xssf.usermodel.XSSFFont;
+//import org.apache.poi.xssf.usermodel.XSSFPictureData;
+//import org.apache.poi.xssf.usermodel.XSSFRelation;
+//import org.apache.poi.xssf.usermodel.XSSFRow;
+//import org.apache.poi.xssf.usermodel.XSSFSheet;
+//import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+//import org.jeecg.modules.jmreport.common.constant.CommonConstant;
+//import org.jeecg.modules.jmreport.common.constant.JmConst;
+//import org.jeecg.modules.jmreport.common.util.ExcelUtil;
+//import org.jeecg.modules.jmreport.common.util.GoogleBarCodeUtils;
+//import org.jeecg.modules.jmreport.common.util.oConvertUtils;
+//import org.jeecg.modules.jmreport.common.vo.Result;
+//import org.jeecg.modules.jmreport.config.JmReportBaseConfig;
+//import org.jeecg.modules.jmreport.config.oss.JmReportUploadConfig;
+//import org.jeecg.modules.jmreport.desreport.entity.JimuReport;
+//import org.jeecg.modules.jmreport.desreport.render.utils.ExcelColumn;
+//import org.jeecg.modules.jmreport.desreport.service.IJmReportExportExcel;
+//import org.jeecg.modules.jmreport.desreport.util.b;
+//import org.jeecg.modules.jmreport.desreport.util.d;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.context.annotation.Primary;
+//import org.springframework.stereotype.Service;
+//
+//@Service
+//@Primary
+//public class k implements IJmReportExportExcel {
+//    private static final Logger a = LoggerFactory.getLogger(k.class);
+//    @Autowired
+//    private e jmReportDesignService;
+//    @Autowired
+//    private JmReportBaseConfig jmBaseConfig;
+//    @Autowired
+//    private JmReportUploadConfig jimuReportUploadConfig;
+//
+//    public Map<String, Object> exportExcel(String excelConfigId, JSONObject queryParam, List echartBase) {
+//        XSSFWorkbook var4 = new XSSFWorkbook();
+//        SXSSFWorkbook var5 = new SXSSFWorkbook(var4, -1, Boolean.FALSE, Boolean.TRUE);
+//        String var6 = "";
+//        HashMap var7 = new HashMap();
+//        XSSFCellStyle var8 = this.a(var5);
+//        var7.put("generalStyle", var8);
+//        boolean var9 = true;
+//        new HashMap();
+//        int var11 = 1;
+//        Integer var12 = this.jmBaseConfig.getPageSizeNumber();
+//        if (null == queryParam || queryParam.size() == 0) {
+//            queryParam = new JSONObject();
+//        }
+//
+//        while(var9) {
+//            if (oConvertUtils.isEmpty(var12)) {
+//                var12 = 10000;
+//            }
+//
+//            if (oConvertUtils.isNotEmpty(var12) && "0".equals(String.valueOf(var12))) {
+//                var12 = 10000;
+//            }
+//
+//            queryParam.put("pageNo", var11);
+//            queryParam.put("pageSize", var12);
+//            Result var13 = this.jmReportDesignService.show(excelConfigId, queryParam.toJSONString());
+//            JimuReport var14 = (JimuReport)var13.getResult();
+//            JSONObject var15 = JSON.parseObject(var14.getJsonStr());
+//            JSONObject var16 = var15.getJSONObject("rows");
+//            if (var16.containsKey("-1")) {
+//                var16.remove("-1");
+//            }
+//
+//            if (var16.containsKey("len")) {
+//                var16.remove("len");
+//            }
+//
+//            if (var16.size() < var12) {
+//                var9 = false;
+//            }
+//
+//            if (var16.size() > var12) {
+//                var9 = false;
+//            }
+//
+//            var6 = var14.getName();
+//            JSONObject var17 = JSON.parseObject(var14.getJsonStr());
+//            this.a((JSONObject)var17, (List)echartBase, (SXSSFWorkbook)var5, (XSSFWorkbook)var4, (Integer)var11, (Map)var7);
+//            ++var11;
+//        }
+//
+//        HashMap var18 = new HashMap();
+//        var18.put("name", var6 + ".xlsx");
+//        var18.put("workbook", var5);
+//        return var18;
+//    }
+//
+//    private XSSFCellStyle a(SXSSFWorkbook var1) {
+//        XSSFCellStyle var2 = (XSSFCellStyle)var1.createCellStyle();
+//        XSSFFont var3 = (XSSFFont)var1.createFont();
+//        var3.setFontName("宋体");
+//        var2.setFont(var3);
+//        var2.setAlignment(HorizontalAlignment.CENTER);
+//        var2.setVerticalAlignment(VerticalAlignment.CENTER);
+//        return var2;
+//    }
+//
+//    private SXSSFWorkbook a(JSONObject var1, List var2, SXSSFWorkbook var3, XSSFWorkbook var4, Integer var5, Map<String, CellStyle> var6) {
+//        JSONArray var7 = null;
+//        JSONArray var8 = null;
+//        JSONArray var9 = null;
+//        JSONArray var10 = null;
+//        JSONObject var11 = null;
+//        if (var1.containsKey("imgList")) {
+//            var7 = var1.getJSONArray("imgList");
+//        }
+//
+//        if (var1.containsKey("chartList")) {
+//            var8 = var1.getJSONArray("chartList");
+//        }
+//
+//        if (var1.containsKey("barcodeList")) {
+//            var9 = var1.getJSONArray("barcodeList");
+//        }
+//
+//        if (var1.containsKey("qrcodeList")) {
+//            var10 = var1.getJSONArray("qrcodeList");
+//        }
+//
+//        if (var1.containsKey("background")) {
+//            Object var12 = var1.get("background");
+//            if (var12 instanceof JSONObject) {
+//                var11 = var1.getJSONObject("background");
+//            }
+//        }
+//
+//        JSONObject var13;
+//        String var14;
+//        if (var8 != null && var8.size() > 0 && var2.size() > 0) {
+//            for(int var31 = 0; var31 < var8.size(); ++var31) {
+//                var13 = var8.getJSONObject(var31);
+//                var14 = (String)var13.get("layer_id");
+//                List var15 = var2;
+//                String var16 = "";
+//
+//                for(int var17 = 0; var17 < var15.size(); ++var17) {
+//                    Map var18 = (Map)var15.get(var17);
+//                    if (((String)var18.get("id")).equals(var14)) {
+//                        var16 = (String)var18.get("base64");
+//                    }
+//                }
+//
+//                String[] var35 = var16.split("base64,");
+//                var13.put("url", var35[1]);
+//            }
+//        }
+//
+//        JSONObject var32 = var1.getJSONObject("rows");
+//        var13 = var1.getJSONObject("cols");
+//        if (var13.containsKey("len")) {
+//            var13.remove("len");
+//        }
+//
+//        if (var32.containsKey("-1")) {
+//            var32.remove("-1");
+//        }
+//
+//        var14 = var1.getString("name");
+//        Object var33 = var1.get("styles");
+//        HashMap var34 = new HashMap();
+//        int var37;
+//        if (var33 instanceof JSONArray) {
+//            JSONArray var36 = var1.getJSONArray("styles");
+//
+//            for(var37 = 0; var37 < var36.size(); ++var37) {
+//                var34.put(String.valueOf(var37), var36.get(var37));
+//            }
+//        }
+//
+//        if (var33 instanceof JSONObject) {
+//            JSONObject var38 = (JSONObject)var33;
+//
+//            for(var37 = 1; var37 <= var38.size(); ++var37) {
+//                var34.put(String.valueOf(var37), var38.get(var37));
+//            }
+//        }
+//
+//        Object var39 = null;
+//        String var40 = this.jmBaseConfig.getExportExcelPattern();
+//        if (oConvertUtils.isEmpty(var40) || "fast".equals(var40)) {
+//            var3.createSheet("sheet" + var5);
+//            var39 = var3.getSheetAt(var5 - 1);
+//        }
+//
+//        if ("primary".equals(var40)) {
+//            var4.createSheet("sheet" + var5);
+//            var39 = var4.getSheetAt(var5 - 1);
+//        }
+//
+//        this.a((Sheet)var39, var13);
+//        ((Sheet)var39).setDefaultRowHeightInPoints(19.5F);
+//        HashMap var19 = new HashMap();
+//        HashMap var20 = new HashMap();
+//        HashMap var21 = new HashMap();
+//        ArrayList var22 = new ArrayList();
+//        HashMap var23 = new HashMap();
+//        Map var24 = this.a(var32);
+//        HashMap var25 = new HashMap();
+//        long var26 = System.currentTimeMillis();
+//        HashMap var28 = new HashMap();
+//        this.a((Map)var34, (Workbook)var3, (Map)var6);
+//        if (var39 instanceof SXSSFSheet) {
+//            this.a((SXSSFWorkbook)var3, var32, var34, (SXSSFSheet)((SXSSFSheet)var39), var19, var20, var21, var22, var24, var25, var28, var5, var6);
+//        }
+//
+//        if (var39 instanceof XSSFSheet) {
+//            this.a((XSSFWorkbook)var4, var32, var34, (XSSFSheet)((XSSFSheet)var39), var19, var20, var21, var22, var24, var25, var28, var5, var6);
+//        }
+//
+//        long var29 = System.currentTimeMillis();
+//        a.info("循环数据运行时间:" + (var29 - var26) + "ms");
+//        if (var32.size() < this.jmBaseConfig.excelStyleRow && var5 == 1 || var39 instanceof XSSFSheet) {
+//            this.a((JSONObject)var32, (Sheet)var39, (SXSSFWorkbook)var3, (Map)var34, (Map)var28, (Map)var23);
+//            this.a((Sheet)var39, (SXSSFWorkbook)var3, (Map)var23);
+//        }
+//
+//        this.a((Workbook)var3, (Sheet)var39, (Map)var19, (Map)var28, (Map)var20, (Map)var21);
+//        if (var7 != null) {
+//            this.a((Sheet)var39, (XSSFWorkbook)var4, (JSONArray)var7, (Map)var28, var25);
+//        }
+//
+//        if (var8 != null) {
+//            this.a((Sheet)var39, (SXSSFWorkbook)var3, (JSONArray)var8, (Map)var25, (JSONObject)var13, (JSONObject)var32);
+//        }
+//
+//        if (var9 != null) {
+//            this.a((Sheet)var39, (Workbook)var3, (JSONArray)var9, (List)var2, var25);
+//        }
+//
+//        if (var10 != null) {
+//            this.a((Sheet)var39, (Workbook)var3, (JSONArray)var10, (List)var2, var25);
+//        }
+//
+//        if (var11 != null) {
+//            this.a((Sheet)var39, (XSSFWorkbook)var4, (JSONObject)var11);
+//        }
+//
+//        if (null != var22 && var22.size() > 0) {
+//            this.a((Sheet)var39, (SXSSFWorkbook)var3, (List)var22, (Map)var28, var25);
+//        }
+//
+//        return var3;
+//    }
+//
+//    private Map<String, Object> a(JSONObject var1) {
+//        HashMap var2 = new HashMap();
+//        Iterator var3 = var1.keySet().iterator();
+//
+//        label60:
+//        while(true) {
+//            String var4;
+//            int var5;
+//            do {
+//                do {
+//                    do {
+//                        do {
+//                            if (!var3.hasNext()) {
+//                                return var2;
+//                            }
+//
+//                            var4 = (String)var3.next();
+//                        } while("cells".equals(var4));
+//                    } while("isDrag".equals(var4));
+//                } while("len".equals(var4));
+//
+//                var5 = Integer.parseInt(var4);
+//            } while(var5 < 0);
+//
+//            JSONObject var6 = var1.getJSONObject(var4).getJSONObject("cells");
+//            var6 = this.b(var6);
+//            Iterator var7 = var6.keySet().iterator();
+//
+//            while(true) {
+//                String var8;
+//                String var10;
+//                Matcher var13;
+//                do {
+//                    JSONObject var9;
+//                    do {
+//                        do {
+//                            if (!var7.hasNext()) {
+//                                continue label60;
+//                            }
+//
+//                            var8 = (String)var7.next();
+//                        } while("-1".equals(var8));
+//
+//                        var9 = var6.getJSONObject(var8);
+//                    } while(!var9.containsKey("text"));
+//
+//                    var10 = var9.getString("text");
+//                    String var11 = "^[=][A-Z]{1,2}[^\\u4e00-\\u9fa5]+$";
+//                    Pattern var12 = Pattern.compile(var11);
+//                    var13 = var12.matcher(var10);
+//                } while(!ExcelUtil.isHave(CommonConstant.JIMUREPORT_FUNCTION, var10) && !var13.matches());
+//
+//                var2.put(var4 + "," + var8, var10);
+//            }
+//        }
+//    }
+//
+//    private void a(Sheet var1, SXSSFWorkbook var2, Map<String, JSONObject> var3) {
+//        Iterator var4 = var3.keySet().iterator();
+//
+//        while(true) {
+//            JSONObject var6;
+//            String[] var7;
+//            do {
+//                if (!var4.hasNext()) {
+//                    return;
+//                }
+//
+//                String var5 = (String)var4.next();
+//                var6 = JSONObject.parseObject(String.valueOf(var3.get(var5)));
+//                var7 = var5.split(",");
+//            } while(var7.length != 4);
+//
+//            int var8 = Integer.valueOf(var7[0]);
+//            int var9 = Integer.valueOf(var7[1]);
+//            int var10 = Integer.valueOf(var7[2]);
+//            int var11 = Integer.valueOf(var7[3]);
+//
+//            for(int var12 = var8; var12 < var9 + 1; ++var12) {
+//                Row var13 = var1.getRow(var12);
+//
+//                for(int var14 = var10; var14 < var11 + 1; ++var14) {
+//                    try {
+//                        Cell var15 = var13.getCell(var14);
+//                        if (null != var15) {
+//                            XSSFCellStyle var16 = (XSSFCellStyle)var15.getCellStyle();
+//                            Object var17 = var6.get("top");
+//                            Object var18 = var6.get("left");
+//                            Object var19 = var6.get("right");
+//                            Object var20 = var6.get("bottom");
+//                            XSSFColor var21;
+//                            if (null != var17) {
+//                                var21 = this.b(var17.toString());
+//                                var16.setTopBorderColor(var21);
+//                            }
+//
+//                            if (null != var18) {
+//                                var21 = this.b(var18.toString());
+//                                var16.setLeftBorderColor(var21);
+//                            }
+//
+//                            if (null != var19) {
+//                                var21 = this.b(var19.toString());
+//                                var16.setRightBorderColor(var21);
+//                            }
+//
+//                            if (null != var20) {
+//                                var21 = this.b(var20.toString());
+//                                var16.setBottomBorderColor(var21);
+//                            }
+//
+//                            var15.setCellStyle(var16);
+//                        }
+//                    } catch (NullPointerException var22) {
+//                        a.debug("单元格为空", var22.getMessage());
+//                    }
+//                }
+//            }
+//        }
+//    }
+//
+//    private void a(SXSSFWorkbook var1, JSONObject var2, Map var3, SXSSFSheet var4, Map<String, String> var5, Map<String, JSONObject> var6, Map<String, List<String>> var7, List<Map<String, Object>> var8, Map<String, Object> var9, Map<String, Object> var10, Map<String, String> var11, Integer var12, Map<String, CellStyle> var13) {
+//        var2 = this.b(var2);
+//        Iterator var14 = var2.keySet().iterator();
+//
+//        while(true) {
+//            String var15;
+//            int var16;
+//            do {
+//                do {
+//                    do {
+//                        do {
+//                            if (!var14.hasNext()) {
+//                                return;
+//                            }
+//
+//                            var15 = (String)var14.next();
+//                        } while("cells".equals(var15));
+//                    } while("isDrag".equals(var15));
+//                } while("len".equals(var15));
+//
+//                var16 = Integer.parseInt(var15);
+//            } while(var16 < 0);
+//
+//            SXSSFRow var17 = var4.createRow(Integer.parseInt(var15));
+//            if (var2.getJSONObject(var15).containsKey("height")) {
+//                Integer var18 = var2.getJSONObject(var15).getInteger("height");
+//                var17.setHeightInPoints((float)var18 - 9.5F);
+//            }
+//
+//            JSONObject var24 = var2.getJSONObject(var15).getJSONObject("cells");
+//            var24 = this.b(var24);
+//            Iterator var19 = var24.keySet().iterator();
+//
+//            while(var19.hasNext()) {
+//                String var20 = (String)var19.next();
+//                if (!"-1".equals(var20)) {
+//                    JSONObject var21 = var24.getJSONObject(var20);
+//                    SXSSFCell var22 = var17.createCell(Integer.parseInt(var20));
+//                    if (var21.containsKey("style") && var2.size() < this.jmBaseConfig.excelStyleRow && var12 == 1) {
+//                        String var23 = var21.getString("style");
+//                        var22.setCellStyle((CellStyle)var13.get(var23));
+//                    }
+//
+//                    if (var2.size() >= this.jmBaseConfig.excelStyleRow) {
+//                        var22.setCellStyle((CellStyle)var13.get("generalStyle"));
+//                    }
+//
+//                    this.a(var1, var21, var15, var20, var4, var22, var3, var11, var8, var5, var9, var13, var6, var7, var17, var10);
+//                }
+//            }
+//        }
+//    }
+//
+//    private void a(XSSFWorkbook var1, JSONObject var2, Map var3, XSSFSheet var4, Map<String, String> var5, Map<String, JSONObject> var6, Map<String, List<String>> var7, List<Map<String, Object>> var8, Map<String, Object> var9, Map<String, Object> var10, Map<String, String> var11, Integer var12, Map<String, CellStyle> var13) {
+//        var2 = this.b(var2);
+//        Iterator var14 = var2.keySet().iterator();
+//        boolean var15 = true;
+//
+//        while(true) {
+//            String var16;
+//            int var17;
+//            do {
+//                do {
+//                    do {
+//                        do {
+//                            if (!var14.hasNext()) {
+//                                return;
+//                            }
+//
+//                            var16 = (String)var14.next();
+//                        } while("cells".equals(var16));
+//                    } while("isDrag".equals(var16));
+//                } while("len".equals(var16));
+//
+//                var17 = Integer.parseInt(var16);
+//            } while(var17 < 0);
+//
+//            XSSFRow var18 = var4.createRow(Integer.parseInt(var16));
+//            if (var2.getJSONObject(var16).containsKey("height")) {
+//                Integer var19 = var2.getJSONObject(var16).getInteger("height");
+//                var18.setHeightInPoints((float)var19 - 9.5F);
+//            }
+//
+//            JSONObject var25 = var2.getJSONObject(var16).getJSONObject("cells");
+//            var25 = this.b(var25);
+//            Iterator var20 = var25.keySet().iterator();
+//
+//            while(var20.hasNext()) {
+//                String var21 = (String)var20.next();
+//                if (!"-1".equals(var21)) {
+//                    JSONObject var22 = var25.getJSONObject(var21);
+//                    XSSFCell var23 = var18.createCell(Integer.parseInt(var21));
+//                    if (var22.containsKey("style")) {
+//                        String var24 = var22.getString("style");
+//                        var23.setCellStyle((CellStyle)var13.get(var24));
+//                    }
+//
+//                    this.a(var1, var22, var16, var21, var4, var23, var3, var11, var8, var5, var9, var13, var6, var7, var18, var10);
+//                }
+//            }
+//        }
+//    }
+//
+//    private void a(Workbook var1, JSONObject var2, String var3, String var4, Sheet var5, Cell var6, Map var7, Map var8, List var9, Map var10, Map var11, Map<String, CellStyle> var12, Map var13, Map var14, Row var15, Map var16) {
+//        String var17 = var2.getString("merge");
+//        String var18;
+//        if (var2.containsKey("virtual")) {
+//            var18 = var2.getString("virtual");
+//            if (var16.get(var18) == null) {
+//                var16.put(var18, var3 + "," + var4);
+//            }
+//        }
+//
+//        if (var17 != null && !"".equals(var17)) {
+//            String[] var32 = a(var17, "[", "]").split(",");
+//            int var19 = Integer.parseInt(var32[0]);
+//            int var20 = Integer.parseInt(var32[1]);
+//            int var21 = Integer.parseInt(var3);
+//            int var22 = var19 + var21;
+//            int var23 = Integer.parseInt(var4);
+//            int var24 = var20 + var23;
+//            CellRangeAddress var25 = new CellRangeAddress(var21, var22, var23, var24);
+//
+//            try {
+//                var5.addMergedRegion(var25);
+//            } catch (IllegalStateException var30) {
+//                a.warn("单元格合并失败,原因重复单元格或者一个单元格不允许重复合并", var30.getMessage());
+//            } catch (IllegalArgumentException var31) {
+//                a.warn("单元格合并失败,原因重复单元格或者一个单元格不允许重复合并", var31.getMessage());
+//            }
+//
+//            var8.put(var21 + "," + var23, var22 + "," + var24);
+//        }
+//
+//        String var35;
+//        String var37;
+//        if (var2.containsKey("display")) {
+//            var18 = var2.getString("display");
+//            if ("barcode".equals(var18) || "qrcode".equals(var18) || "img".equals(var18)) {
+//                HashMap var33 = new HashMap();
+//                var35 = var2.getString("display");
+//                var37 = var2.getString("text");
+//                String var38 = var2.getString("style");
+//                String var41 = var2.getString("rendered");
+//                var33.put("style", (JSONObject)var7.get(var38));
+//                var33.put("text", var37);
+//                var33.put("display", var35);
+//                var33.put("row", var6.getRowIndex());
+//                var33.put("cell", var6.getColumnIndex());
+//                var33.put("layer_id", var41);
+//                var9.add(var33);
+//            }
+//        }
+//
+//        if (var2.containsKey("text")) {
+//            var18 = var2.getString("text");
+//            String var34 = "";
+//
+//            try {
+//                var34 = this.a(var2, var7, var18);
+//            } catch (Exception var29) {
+//                var29.printStackTrace();
+//            }
+//
+//            if (var18.contains("|")) {
+//                Object var36 = var2.get("lineStart");
+//                if (null != var36) {
+//                    var10.put(var3 + "," + var4, var36.toString());
+//                    var37 = var2.getString("style");
+//                    var13.put(var3 + "," + var4, (JSONObject)var7.get(var37));
+//                    ArrayList var39 = new ArrayList();
+//                    var39.add(var3);
+//                    var39.add(var4);
+//                    var14.put(var3, var39);
+//                }
+//            }
+//
+//            var35 = "";
+//            var37 = var2.getString("style");
+//            if (oConvertUtils.isNotEmpty(var37)) {
+//                JSONObject var40 = (JSONObject)var7.get(var37);
+//                if (var40.containsKey("format")) {
+//                    var35 = var40.getString("format");
+//                }
+//            }
+//
+//            if (oConvertUtils.isNotEmpty(var35) && oConvertUtils.isNotEmpty(var18) && ExcelUtil.isHave(JmConst.NUMBER_FUNCTION, var35)) {
+//                DataFormat var42 = var1.createDataFormat();
+//                CellStyle var43 = (CellStyle)var12.get(var37);
+//                String var44 = "0.00";
+//                Object var45 = var2.get("decimalPlaces");
+//                if (oConvertUtils.isNotEmpty(var45) && "number".equals(var35)) {
+//                    Integer var26 = Integer.valueOf(var45.toString());
+//                    if (var26 <= 0) {
+//                        var44 = "0";
+//                    } else {
+//                        String var27 = "0.";
+//
+//                        for(int var28 = 0; var28 < var26; ++var28) {
+//                            var27 = var27 + "0";
+//                        }
+//
+//                        var44 = var27;
+//                    }
+//
+//                    var43.setDataFormat(var42.getFormat(var44));
+//                    var6.setCellStyle(var43);
+//                }
+//
+//                var6.setCellValue(Double.parseDouble(var18));
+//                return;
+//            }
+//
+//            var6.setCellValue(oConvertUtils.isNotEmpty(var34) ? var34 : var18);
+//        }
+//
+//    }
+//
+//    private boolean a(Row var1, Integer var2, Map<String, Object> var3) {
+//        CellReference var4 = new CellReference(var1.getRowNum(), var2);
+//        String[] var5 = var4.getCellRefParts();
+//        String var6 = var5[1];
+//        String var7 = var5[2];
+//        String var8 = var7 + var6;
+//        Iterator var9 = var3.entrySet().iterator();
+//
+//        while(var9.hasNext()) {
+//            Entry var10 = (Entry)var9.next();
+//            String var11 = String.valueOf(var10.getValue());
+//            String[] var13 = var11.split("[^A-Z0-9]");
+//            StringBuilder var14 = new StringBuilder();
+//
+//            for(int var15 = 0; var15 < var13.length; ++var15) {
+//                if (!ExcelUtil.isHave(JmConst.JIMUREPORT_FUNCTION, var13[var15]) && oConvertUtils.isNotEmpty(var13[var15])) {
+//                    var14.append(var13[var15]).append(",");
+//                }
+//            }
+//
+//            String var24 = var14.toString();
+//            String[] var16 = var24.split(",");
+//            if (var11.contains(",")) {
+//                for(int var17 = 0; var17 < var16.length; ++var17) {
+//                    if (var8.equals(var16[var17])) {
+//                        return true;
+//                    }
+//                }
+//            }
+//
+//            if (var11.contains(":") && var16.length == 2) {
+//                String var25 = var16[0];
+//                String var18 = var16[1];
+//                var25 = var25.replaceAll("[^a-zA-Z].*", "");
+//                var18 = var18.replaceAll("[^a-zA-Z].*", "");
+//                String var19 = var16[0].replaceAll("[^0-9]", "");
+//                String var20 = var16[1].replaceAll("[^0-9]", "");
+//                int var21 = ExcelColumn.a(var25, var25.length());
+//                int var22 = ExcelColumn.a(var18, var18.length());
+//                int var23 = ExcelColumn.a(var7, var7.length());
+//                if (Integer.parseInt(var19) <= Integer.parseInt(var6) && Integer.parseInt(var6) <= Integer.parseInt(var20) && var21 <= var23 && var23 <= var22) {
+//                    return true;
+//                }
+//            }
+//        }
+//
+//        return false;
+//    }
+//
+//    private void a(Map<String, JSONObject> var1, Workbook var2, Map<String, CellStyle> var3) {
+//        Iterator var4 = var1.entrySet().iterator();
+//
+//        while(true) {
+//            Entry var5;
+//            JSONObject var7;
+//            XSSFCellStyle var8;
+//            do {
+//                do {
+//                    do {
+//                        CellStyle var6;
+//                        do {
+//                            if (!var4.hasNext()) {
+//                                return;
+//                            }
+//
+//                            var5 = (Entry)var4.next();
+//                            var6 = (CellStyle)var3.get(var5.getKey());
+//                        } while(null != var6);
+//
+//                        var7 = (JSONObject)var5.getValue();
+//                    } while(var7 == null);
+//                } while("null".equals(var7));
+//
+//                var8 = (XSSFCellStyle)var2.createCellStyle();
+//            } while(null == var7);
+//
+//            String var9;
+//            if (!var7.containsKey("align")) {
+//                var8.setAlignment(HorizontalAlignment.LEFT);
+//            } else {
+//                var9 = var7.getString("align").toUpperCase();
+//                var8.setAlignment(HorizontalAlignment.valueOf(var9));
+//            }
+//
+//            if (null != var7 && !var7.containsKey("valign")) {
+//                var8.setVerticalAlignment(VerticalAlignment.valueOf("center".toUpperCase()));
+//            } else {
+//                var9 = var7.getString("valign").toUpperCase();
+//                if ("MIDDLE".equals(var9)) {
+//                    var9 = "center".toUpperCase();
+//                }
+//
+//                var8.setVerticalAlignment(VerticalAlignment.valueOf(var9));
+//            }
+//
+//            if (null == var7 || var7.containsKey("bgcolor")) {
+//                var9 = var7.getString("bgcolor");
+//                XSSFColor var10 = new XSSFColor();
+//                if (var9.indexOf("#") != -1 && var9.length() > 6) {
+//                    String var11 = var9.replaceAll("#", "");
+//                    if (var11.length() == 6) {
+//                        byte[] var12 = new byte[]{(byte)Integer.parseInt(var11.substring(0, 2), 16), (byte)Integer.parseInt(var11.substring(2, 4), 16), (byte)Integer.parseInt(var11.substring(4, 6), 16)};
+//                        var10.setRGB(var12);
+//                    }
+//                }
+//
+//                var8.setFillForegroundColor(var10);
+//                var8.setFillBackgroundColor(var10);
+//                var8.setFillPattern(FillPatternType.BIG_SPOTS);
+//            }
+//
+//            XSSFColor var14;
+//            if (null != var7 && var7.containsKey("font") || var7.containsKey("underline") || var7.containsKey("strike") || var7.containsKey("color")) {
+//                XSSFFont var18 = (XSSFFont)var2.createFont();
+//                JSONObject var17 = (JSONObject)var7.get("font");
+//                Object var22 = var7.get("underline");
+//                Object var25 = var7.get("strike");
+//                if (null != var17) {
+//                    if (var17.containsKey("name")) {
+//                        var18.setFontName(var17.getString("name"));
+//                    }
+//
+//                    if (var17.containsKey("italic")) {
+//                        var18.setItalic(true);
+//                    }
+//
+//                    if (var17.containsKey("size")) {
+//                        var18.setFontHeightInPoints(var17.getShort("size"));
+//                    }
+//
+//                    if (var17.containsKey("bold")) {
+//                        boolean var13 = var17.getBoolean("bold");
+//                        var18.setBold(var13);
+//                    }
+//                }
+//
+//                if (null != var22) {
+//                    var18.setUnderline((byte)1);
+//                }
+//
+//                if (null != var25) {
+//                    var18.setStrikeout(true);
+//                }
+//
+//                if (null != var7 && var7.containsKey("color")) {
+//                    String var27 = var7.getString("color");
+//                    var14 = new XSSFColor();
+//                    if (var27.length() > 6) {
+//                        if (var27.contains("rgb")) {
+//                            var27 = var27.replace("rgb", "").replace("(", "").replace(")", "");
+//                            String[] var15 = var27.split(",");
+//                            if (var15.length == 3) {
+//                                byte[] var16 = new byte[]{(byte)Integer.parseInt(var15[0]), (byte)Integer.parseInt(var15[1]), (byte)Integer.parseInt(var15[2])};
+//                                var14.setRGB(var16);
+//                            }
+//                        } else if (var27.contains("#")) {
+//                            byte[] var29 = new byte[]{(byte)Integer.parseInt(var27.substring(1, 3), 16), (byte)Integer.parseInt(var27.substring(3, 5), 16), (byte)Integer.parseInt(var27.substring(5, 7), 16)};
+//                            var14.setRGB(var29);
+//                        }
+//                    }
+//
+//                    var18.setColor(var14);
+//                }
+//
+//                var8.setFont(var18);
+//            }
+//
+//            if (var7.containsKey("border")) {
+//                JSONObject var20 = var7.getJSONObject("border");
+//                JSONArray var19 = var20.getJSONArray("right");
+//                JSONArray var24 = var20.getJSONArray("top");
+//                JSONArray var26 = var20.getJSONArray("left");
+//                JSONArray var28 = var20.getJSONArray("bottom");
+//                if (null != var24 && var24.size() > 1) {
+//                    var8.setBorderTop(BorderStyle.THIN);
+//                    var14 = this.b(var24.get(1).toString());
+//                    var8.setTopBorderColor(var14);
+//                }
+//
+//                if (null != var28 && var28.size() > 1) {
+//                    var8.setBorderBottom(BorderStyle.THIN);
+//                    var14 = this.b(var28.get(1).toString());
+//                    var8.setBottomBorderColor(var14);
+//                }
+//
+//                if (null != var26 && var26.size() > 1) {
+//                    var8.setBorderLeft(BorderStyle.THIN);
+//                    var14 = this.b(var26.get(1).toString());
+//                    var8.setLeftBorderColor(var14);
+//                }
+//
+//                if (null != var19 && var19.size() > 1) {
+//                    var8.setBorderRight(BorderStyle.THIN);
+//                    var14 = this.b(var19.get(1).toString());
+//                    var8.setRightBorderColor(var14);
+//                }
+//            }
+//
+//            if (var7.containsKey("format")) {
+//                DataFormat var23 = var2.createDataFormat();
+//                String var21 = var7.getString("format");
+//                if ("percent".equals(var21)) {
+//                    var8.setDataFormat(var23.getFormat("0.00%"));
+//                }
+//
+//                if ("rmb".equals(var21)) {
+//                    var8.setDataFormat(var23.getFormat("¥#,##0"));
+//                }
+//
+//                if ("usd".equals(var21)) {
+//                    var8.setDataFormat(var23.getFormat("$#,##0"));
+//                }
+//
+//                if ("eur".equals(var21)) {
+//                    var8.setDataFormat(var23.getFormat("€#,##0"));
+//                }
+//            }
+//
+//            var8.setWrapText(true);
+//            var3.put((String) var5.getKey(), var8);
+//        }
+//    }
+//
+//    private void a(Sheet var1, JSONObject var2) {
+//        var1.setDefaultColumnWidth(12);
+//        Iterator var3 = var2.keySet().iterator();
+//
+//        while(var3.hasNext()) {
+//            String var4 = (String)var3.next();
+//            JSONObject var5 = (JSONObject)var2.get(var4);
+//            var1.setColumnWidth(Integer.parseInt(var4), 35 * (int)((double)var5.getInteger("width") + 0.8D));
+//        }
+//
+//    }
+//
+//    private JSONObject b(JSONObject var1) {
+//        ArrayList var2 = new ArrayList();
+//        Iterator var3 = var1.keySet().iterator();
+//
+//        while(var3.hasNext()) {
+//            String var4 = (String)var3.next();
+//            if (oConvertUtils.isNotEmpty(var4) && !"NaN".equals(var4) && !"len".equals(var4)) {
+//                var2.add(Integer.parseInt(var4));
+//            }
+//        }
+//
+//        Collections.sort(var2);
+//        JSONArray var9 = new JSONArray();
+//        JSONObject var5 = new JSONObject(true);
+//        Iterator var6 = var2.iterator();
+//
+//        while(var6.hasNext()) {
+//            Integer var7 = (Integer)var6.next();
+//            JSONObject var8 = var1.getJSONObject(String.valueOf(var7));
+//            var9.add(var8);
+//            var5.put(String.valueOf(var7), var8);
+//        }
+//
+//        return var5;
+//    }
+//
+//    private void a(JSONObject var1, Sheet var2, SXSSFWorkbook var3, Map var4, Map<String, String> var5, Map<String, JSONObject> var6) {
+//        Iterator var7 = var1.keySet().iterator();
+//
+//        while(true) {
+//            String var8;
+//            JSONObject var9;
+//            do {
+//                do {
+//                    do {
+//                        do {
+//                            if (!var7.hasNext()) {
+//                                return;
+//                            }
+//
+//                            var8 = (String)var7.next();
+//                        } while("len".equals(var8));
+//                    } while("cells".equals(var8));
+//                } while("isDrag".equals(var8));
+//
+//                var9 = var1.getJSONObject(var8).getJSONObject("cells");
+//            } while(null == var9);
+//
+//            Iterator var10 = var9.keySet().iterator();
+//
+//            while(var10.hasNext()) {
+//                String var11 = (String)var10.next();
+//                JSONObject var12 = var9.getJSONObject(var11);
+//                if (var12.containsKey("merge")) {
+//                    String var13 = var12.getString("merge");
+//                    String[] var14 = a(var13, "[", "]").split(",");
+//                    int var15 = Integer.parseInt(var14[0]);
+//                    int var16 = Integer.parseInt(var14[1]);
+//                    if (var13 != null && !"".equals(var13)) {
+//                        JSONObject var17 = new JSONObject();
+//                        int var18 = Integer.parseInt(var8);
+//                        int var19 = var15 + var18;
+//                        int var20 = Integer.parseInt(var11);
+//                        int var21 = var16 + var20;
+//                        CellRangeAddress var22 = new CellRangeAddress(var18, var19, var20, var21);
+//                        if (var12.containsKey("style")) {
+//                            String var23 = var12.getString("style");
+//                            JSONObject var24 = (JSONObject)var4.get(var23);
+//                            if (null != var24 && var24.containsKey("border")) {
+//                                JSONObject var25 = var24.getJSONObject("border");
+//                                Iterator var26 = var25.keySet().iterator();
+//                                JSONArray var27 = var25.getJSONArray("right");
+//                                JSONArray var28 = var25.getJSONArray("top");
+//                                if (null != var28 && var28.size() > 1) {
+//                                    RegionUtil.setBorderTop(BorderStyle.THIN, var22, var2);
+//                                    var17.put("top", var28.get(1).toString());
+//                                }
+//
+//                                if (null != var27 && var27.size() > 1) {
+//                                    RegionUtil.setBorderRight(BorderStyle.THIN, var22, var2);
+//                                    var17.put("right", var27.get(1).toString());
+//                                }
+//
+//                                JSONArray var29 = var25.getJSONArray("left");
+//                                if (null != var29 && var29.size() > 1) {
+//                                    RegionUtil.setBorderLeft(BorderStyle.THIN, var22, var2);
+//                                    var17.put("left", var29.get(1).toString());
+//                                }
+//
+//                                JSONArray var30 = var25.getJSONArray("bottom");
+//                                if (null != var30 && var30.size() > 1) {
+//                                    RegionUtil.setBorderBottom(BorderStyle.THIN, var22, var2);
+//                                    var17.put("bottom", var30.get(1).toString());
+//                                }
+//                            }
+//
+//                            String var31 = var18 + "," + var19 + "," + var20 + "," + var21;
+//                            var6.put(var31, var17);
+//                        }
+//                    }
+//                }
+//            }
+//        }
+//    }
+//
+//    public static String a(String var0, String var1, String var2) {
+//        int var3 = var0.indexOf(var1);
+//        int var4 = var0.indexOf(var2);
+//        if (var3 < 0) {
+//            return "";
+//        } else if (var4 < 0) {
+//            return "";
+//        } else {
+//            String var5 = var0.substring(var3, var4).substring(var1.length());
+//            return var5;
+//        }
+//    }
+//
+//    private void a(Sheet var1, XSSFWorkbook var2, JSONArray var3, Map<String, String> var4, Map<String, Object> var5) {
+//        Drawing var6 = var1.createDrawingPatriarch();
+//        HttpURLConnection var7 = null;
+//
+//        try {
+//            for(int var9 = 0; var9 < var3.size(); ++var9) {
+//                boolean var10 = false;
+//                boolean var11 = false;
+//                String var12 = "";
+//                String var13 = "";
+//                String var14 = "";
+//                JSONObject var15 = var3.getJSONObject(var9);
+//                int var37 = Integer.valueOf(var15.getString("col"));
+//                int var36 = Integer.valueOf(var15.getString("row"));
+//                var13 = (String)var15.get("width");
+//                var14 = (String)var15.get("height");
+//                var12 = (String)var15.get("src");
+//                String var16 = var15.getString("layer_id");
+//                Object var17 = var15.get("colspan");
+//                Object var18 = var15.get("rowspan");
+//                Object var19 = var5.get(var16);
+//                if (null != var19) {
+//                    String[] var20 = String.valueOf(var19).split(",");
+//                    var36 = Integer.parseInt(var20[0]);
+//                    var37 = Integer.parseInt(var20[1]);
+//                }
+//
+//                if (var14.contains("px") && var13.contains("px")) {
+//                    var14 = var14.substring(0, var14.lastIndexOf("px"));
+//                    var13 = var13.substring(0, var13.lastIndexOf("px"));
+//                }
+//
+//                byte[] var8;
+//                if (var12.contains("http")) {
+//                    URL var38 = new URL(var12);
+//                    if (var12.contains("https")) {
+//                        var8 = b.a(var12);
+//                    } else {
+//                        var7 = (HttpURLConnection)var38.openConnection();
+//                        var7.setRequestMethod("GET");
+//                        var7.setConnectTimeout(50000);
+//                        InputStream var21 = var7.getInputStream();
+//                        var8 = a(var21);
+//                    }
+//                } else {
+//                    var8 = this.c(var12);
+//                }
+//
+//                boolean var39 = false;
+//                String var41 = (String)var4.get(var36 + "," + var37);
+//                boolean var22 = false;
+//                int var40;
+//                int var42;
+//                if (null != var17 && null != var18) {
+//                    var42 = var36 + Integer.parseInt(var18.toString());
+//                    var40 = var37 + Integer.parseInt(var17.toString());
+//                } else {
+//                    if (oConvertUtils.isNotEmpty(var41)) {
+//                        String var23 = var41.split(",")[0];
+//                        var42 = Integer.parseInt(var23);
+//                    } else {
+//                        var42 = var36 + Integer.parseInt(String.format("%.0f", Float.parseFloat(var14) / 25.0F));
+//                    }
+//
+//                    Integer var43 = this.a(var1, var36, (float)Integer.parseInt(var14));
+//                    if (var43 > 0) {
+//                        var42 = var43;
+//                    } else {
+//                        var42 += var36;
+//                    }
+//
+//                    var40 = Integer.parseInt(String.format("%.0f", Float.parseFloat(var13) / 100.0F));
+//                    var40 += var37;
+//                }
+//
+//                Object var44 = var15.get("isBackend");
+//                if (null != var44 && (Boolean)var44) {
+//                    int var45 = var2.addPicture(var8, 6);
+//                    XSSFPictureData var25 = (XSSFPictureData)var2.getAllPictures().get(var45);
+//
+//                    try {
+//                        for(int var26 = 0; var26 < var2.getNumberOfSheets(); ++var26) {
+//                            XSSFSheet var46 = var2.getSheetAt(var26);
+//                            PackagePartName var28 = var25.getPackagePart().getPartName();
+//                            String var29 = XSSFRelation.IMAGES.getRelation();
+//                            PackageRelationship var30 = var46.getPackagePart().addRelationship(var28, TargetMode.EXTERNAL, var29, (String)null);
+//                            var46.getCTWorksheet().addNewPicture().setId(var30.getId());
+//                        }
+//                    } catch (Exception var31) {
+//                        XSSFClientAnchor var27 = new XSSFClientAnchor(0, 0, Integer.parseInt(var13), Integer.parseInt(var14), var37, var36, var40, var42);
+//                        var6.createPicture(var27, var2.addPicture(var8, 5));
+//                    }
+//                } else {
+//                    XSSFClientAnchor var24 = new XSSFClientAnchor(0, 0, Integer.parseInt(var13), Integer.parseInt(var14), var37, var36, var40, var42);
+//                    var6.createPicture(var24, var2.addPicture(var8, 5));
+//                }
+//            }
+//        } catch (MalformedURLException var32) {
+//            var32.printStackTrace();
+//        } catch (ProtocolException var33) {
+//            var33.printStackTrace();
+//        } catch (IOException var34) {
+//            var34.printStackTrace();
+//        } catch (Exception var35) {
+//            var35.printStackTrace();
+//        }
+//
+//    }
+//
+//    private byte[] c(String var1) {
+//        File var2 = new File(this.jimuReportUploadConfig.getPath().getUpload() + File.separator + var1);
+//
+//        try {
+//            byte[] var3 = Files.readAllBytes(var2.toPath());
+//            return var3;
+//        } catch (IOException var4) {
+//            var4.printStackTrace();
+//            return null;
+//        }
+//    }
+//
+//    private void a(Sheet var1, XSSFWorkbook var2, JSONObject var3) {
+//        Drawing var4 = var1.createDrawingPatriarch();
+//        Object var5 = null;
+//        String var6 = "";
+//        String var7 = "";
+//        String var8 = "";
+//        Object var18 = var3.get("width");
+//        Object var19 = var3.get("height");
+//        var6 = var3.getString("path");
+//        byte[] var9 = this.a(var6);
+//        XSSFPictureData var10 = null;
+//        boolean var11 = false;
+//
+//        try {
+//            int var20 = var2.addPicture(var9, 6);
+//            var10 = (XSSFPictureData)var2.getAllPictures().get(var20);
+//        } catch (NullPointerException var17) {
+//            a.debug("数据为空", var17.getMessage());
+//        }
+//
+//        if (var10 != null) {
+//            for(int var12 = 0; var12 < var2.getNumberOfSheets(); ++var12) {
+//                XSSFSheet var13 = var2.getSheetAt(var12);
+//                PackagePartName var14 = var10.getPackagePart().getPartName();
+//                String var15 = XSSFRelation.IMAGES.getRelation();
+//                PackageRelationship var16 = var13.getPackagePart().addRelationship(var14, TargetMode.EXTERNAL, var15, (String)null);
+//                var13.getCTWorksheet().addNewPicture().setId(var16.getId());
+//            }
+//        }
+//
+//    }
+//
+//    private void a(Sheet var1, SXSSFWorkbook var2, JSONArray var3, Map<String, Object> var4, JSONObject var5, JSONObject var6) {
+//        Drawing var7 = var1.createDrawingPatriarch();
+//        Object var8 = null;
+//
+//        try {
+//            for(int var9 = 0; var9 < var3.size(); ++var9) {
+//                boolean var10 = false;
+//                boolean var11 = false;
+//                String var12 = "";
+//                String var13 = "";
+//                String var14 = "";
+//                JSONObject var15 = var3.getJSONObject(var9);
+//                int var33 = Integer.valueOf(var15.getString("col"));
+//                int var32 = Integer.valueOf(var15.getString("row"));
+//                var13 = (String)var15.get("width");
+//                var14 = (String)var15.get("height");
+//                var12 = (String)var15.get("url");
+//                String var16 = var15.getString("layer_id");
+//                Object var17 = var4.get(var16);
+//                if (null != var17) {
+//                    String[] var18 = String.valueOf(var17).split(",");
+//                    var32 = Integer.parseInt(var18[0]);
+//                    var33 = Integer.parseInt(var18[1]);
+//                }
+//
+//                byte[] var34 = new byte[0];
+//                var34 = oConvertUtils.decodeBase64(var12);
+//                int var20 = 0;
+//                float var21 = Float.parseFloat(var14);
+//
+//                for(int var22 = var32; var22 < var32 + 99; ++var22) {
+//                    Row var23 = var1.getRow(var22);
+//                    if (var23 == null) {
+//                        break;
+//                    }
+//
+//                    ++var20;
+//                    var21 -= var23.getHeightInPoints();
+//                }
+//
+//                Object var35 = var15.get("colspan");
+//                Object var36 = var15.get("rowspan");
+//                boolean var24 = false;
+//                int var37;
+//                if (null != var35 && null != var36) {
+//                    var20 = var32 + Integer.parseInt(var36.toString());
+//                    var37 = var33 + Integer.parseInt(var35.toString());
+//                } else {
+//                    var20 += Integer.parseInt(String.format("%.0f", var21 / 25.0F));
+//                    var37 = Integer.parseInt(String.format("%.0f", Float.parseFloat(var13) / 100.0F));
+//                    var37 += var33;
+//                }
+//
+//                int var25 = 0;
+//
+//                int var26;
+//                for(var26 = var33; var26 < var37; ++var26) {
+//                    Object var27 = var5.get(var26);
+//                    if (oConvertUtils.isNotEmpty(var27)) {
+//                        JSONObject var28 = (JSONObject)var27;
+//                        Object var29 = var28.get("width");
+//                        var25 += Integer.valueOf(String.valueOf(var29));
+//                    } else {
+//                        var25 += 100;
+//                    }
+//                }
+//
+//                if (var25 > Integer.parseInt(var13)) {
+//                    var25 -= Integer.parseInt(var13);
+//                } else {
+//                    var25 = 0;
+//                }
+//
+//                var25 = var25 * 3 / 4;
+//                var26 = 0;
+//
+//                for(int var38 = var32; var38 < var20; ++var38) {
+//                    Object var40 = var6.get(var38);
+//                    if (oConvertUtils.isNotEmpty(var40)) {
+//                        JSONObject var41 = (JSONObject)var40;
+//                        Object var30 = var41.get("height");
+//                        if (oConvertUtils.isNotEmpty(var30)) {
+//                            var26 += Integer.parseInt(var30.toString());
+//                        } else {
+//                            var26 += 25;
+//                        }
+//                    } else {
+//                        var26 += 25;
+//                    }
+//                }
+//
+//                if (var26 > Integer.parseInt(var14)) {
+//                    var26 -= Integer.parseInt(var14);
+//                } else {
+//                    var26 = 0;
+//                }
+//
+//                var26 = var26 * 3 / 4;
+//                XSSFClientAnchor var39 = new XSSFClientAnchor(0, 0, 12700 * -var25, 12700 * -var26, var33, var32, var37, var20);
+//                var7.createPicture(var39, var2.addPicture(var34, 5));
+//            }
+//        } catch (Exception var31) {
+//            var31.printStackTrace();
+//        }
+//
+//    }
+//
+//    private void a(Sheet var1, Workbook var2, JSONArray var3, List var4, Map<String, Object> var5) {
+//        Drawing var6 = var1.createDrawingPatriarch();
+//
+//        for(int var7 = 0; var7 < var3.size(); ++var7) {
+//            JSONObject var8 = var3.getJSONObject(var7);
+//            boolean var9 = false;
+//            boolean var10 = false;
+//            String var11 = "";
+//            String var12 = "";
+//            int var25 = Integer.valueOf(var8.getString("col"));
+//            int var24 = Integer.valueOf(var8.getString("row"));
+//            var11 = String.valueOf(var8.get("width"));
+//            var12 = String.valueOf(var8.get("height"));
+//            String var13 = (String)var8.get("layer_id");
+//            String var14 = "";
+//            Object var15 = var5.get(var13);
+//            if (null != var15) {
+//                String[] var16 = String.valueOf(var15).split(",");
+//                var24 = Integer.parseInt(var16[0]);
+//                var25 = Integer.parseInt(var16[1]);
+//            }
+//
+//            Object var18;
+//            for(int var26 = 0; var26 < var4.size(); ++var26) {
+//                Map var17 = (Map)var4.get(var26);
+//                var18 = var17.get("id");
+//                if (var13.equals(var18.toString())) {
+//                    var14 = (String)var17.get("base64");
+//                }
+//            }
+//
+//            byte[] var27 = new byte[0];
+//            var27 = oConvertUtils.decodeBase64(var14.replace("data:image/png;base64,", ""));
+//            var18 = var8.get("colspan");
+//            Object var19 = var8.get("rowspan");
+//            boolean var20 = false;
+//            boolean var21 = false;
+//            float var22 = Float.parseFloat(var12);
+//            int var28;
+//            int var29;
+//            if (null != var18 && null != var19) {
+//                var29 = var24 + Integer.parseInt(var19.toString());
+//                var28 = var25 + Integer.parseInt(var18.toString());
+//            } else {
+//                var28 = var24 + Integer.parseInt(String.format("%.0f", Float.parseFloat(var12) / 25.0F));
+//                var29 = Integer.parseInt(String.format("%.0f", Float.parseFloat(var11) / 100.0F));
+//            }
+//
+//            XSSFClientAnchor var23 = new XSSFClientAnchor(0, 0, Integer.parseInt(var11), Integer.parseInt(var12), var25, var24, var28, var29);
+//            var6.createPicture(var23, var2.addPicture(var27, 5));
+//        }
+//
+//    }
+//
+//    private static byte[] a(InputStream var0) throws Exception {
+//        ByteArrayOutputStream var1 = new ByteArrayOutputStream();
+//        byte[] var2 = new byte[1024];
+//        boolean var3 = false;
+//
+//        int var4;
+//        while((var4 = var0.read(var2)) != -1) {
+//            var1.write(var2, 0, var4);
+//        }
+//
+//        var0.close();
+//        return var1.toByteArray();
+//    }
+//
+//    public Integer a(Sheet var1, Integer var2, float var3) {
+//        int var4 = 0;
+//        Double var5 = 0.0D;
+//
+//        for(Iterator var6 = var1.iterator(); var6.hasNext(); ++var4) {
+//            Row var7 = (Row)var6.next();
+//            if (var2 <= var4) {
+//                var5 = var5 + (double)var7.getHeightInPoints();
+//            }
+//
+//            if (var5 != 0.0D && (double)var3 - var5 <= 10.0D && var4 > 0) {
+//                return var4;
+//            }
+//
+//            if (var5 >= (double)var3 && var4 > 0) {
+//                return var4;
+//            }
+//        }
+//
+//        return 0;
+//    }
+//
+//    public Integer a(Sheet var1, Integer var2, Integer var3, float var4) {
+//        float var5 = 0.0F;
+//        Row var6 = var1.getRow(var2);
+//        Iterator var7 = var6.iterator();
+//
+//        while(var7.hasNext()) {
+//            Cell var8 = (Cell)var7.next();
+//            if (var8.getColumnIndex() >= var3) {
+//                float var9 = var1.getColumnWidthInPixels(var8.getColumnIndex());
+//                var5 += var9;
+//                if (var5 >= var4) {
+//                    return var8.getColumnIndex();
+//                }
+//
+//                float var10 = var4 - var5;
+//                if (var10 < 30.0F) {
+//                    return var8.getColumnIndex();
+//                }
+//            }
+//        }
+//
+//        return 0;
+//    }
+//
+//    public String a(JSONObject var1, Map var2, String var3) throws Exception {
+//        String var4 = var1.getString("style");
+//        JSONObject var5 = (JSONObject)var2.get(var4);
+//        if (null != var5 && var4 != null && !"null".equals(var4)) {
+//            Object var6 = var5.get("format");
+//            if (null != var6) {
+//                SimpleDateFormat var7 = ExcelUtil.getFormat(var6.toString());
+//                if (null != var7 && oConvertUtils.isNotEmpty(var3)) {
+//                    SimpleDateFormat var8 = ExcelUtil.getDataFormat(var3);
+//                    if (null != var8) {
+//                        Date var9 = var8.parse(var3);
+//
+//                        try {
+//                            String var10 = var7.format(var9);
+//                            a.info("日期格式化之后的文本:" + var10);
+//                            return var10;
+//                        } catch (Exception var11) {
+//                            a.info("日期格式不正确:" + var11.getMessage());
+//                        }
+//                    } else {
+//                        String var12 = d.a(var3, var7);
+//                        if (oConvertUtils.isNotEmpty(var12)) {
+//                            return var12;
+//                        }
+//                    }
+//                }
+//            }
+//        }
+//
+//        return "";
+//    }
+//
+//    private void a(Workbook var1, Sheet var2, Map<String, String> var3, Map<String, String> var4, Map<String, JSONObject> var5, Map<String, List<String>> var6) {
+//        Set var7 = var6.keySet();
+//        Iterator var8 = var7.iterator();
+//
+//        while(true) {
+//            String var11;
+//            String var12;
+//            Cell var13;
+//            String var14;
+//            String var15;
+//            String var16;
+//            JSONObject var17;
+//            Row var18;
+//            int var19;
+//            int var20;
+//            do {
+//                do {
+//                    if (!var8.hasNext()) {
+//                        return;
+//                    }
+//
+//                    String var9 = (String)var8.next();
+//                    List var10 = (List)var6.get(var9);
+//                    var11 = (String)var10.get(0);
+//                    var12 = (String)var10.get(1);
+//                    var13 = var2.getRow(Integer.parseInt(var11)).getCell(Integer.parseInt(var12));
+//                    var14 = ExcelUtil.getCellValueByCell(var13);
+//                } while(!var14.contains("|"));
+//
+//                var15 = (String)var3.get(var13.getRowIndex() + "," + var13.getColumnIndex());
+//                var16 = (String)var4.get(var13.getRowIndex() + "," + var13.getColumnIndex());
+//                var17 = (JSONObject)var5.get(var13.getRowIndex() + "," + var13.getColumnIndex());
+//                var18 = var2.getRow(Integer.parseInt(var11));
+//                var19 = (int)var13.getSheet().getColumnWidthInPixels(var13.getColumnIndex());
+//                var20 = (int)var18.getHeightInPoints();
+//            } while(!oConvertUtils.isNotEmpty(var15));
+//
+//            int var21 = 0;
+//            int var22 = 0;
+//            int var23 = Integer.parseInt(var11);
+//            int var24 = Integer.parseInt(var12);
+//            if (oConvertUtils.isNotEmpty(var16)) {
+//                String[] var25 = var16.split(",");
+//                int var26 = Integer.parseInt(var25[0]);
+//                int var27 = Integer.parseInt(var25[1]);
+//                var23 = var26;
+//                var24 = var27;
+//
+//                int var28;
+//                for(var28 = var18.getRowNum() + 1; var28 < var26 + 1; ++var28) {
+//                    Row var29 = var2.getRow(var28);
+//                    if (var29 != null) {
+//                        var22 += (int)var2.getRow(var28).getHeightInPoints();
+//                    }
+//                }
+//
+//                for(var28 = var13.getColumnIndex() + 1; var28 < var27 + 1; ++var28) {
+//                    var21 += (int)var2.getColumnWidthInPixels(var28);
+//                }
+//            }
+//
+//            var19 += var21;
+//            var20 += var22;
+//            var13.setCellValue("");
+//            if (var2 instanceof SXSSFSheet) {
+//                try {
+//                    byte[] var32 = ExcelUtil.getImage(var14, var15, var19, var20, var17);
+//                    Drawing var33 = var2.createDrawingPatriarch();
+//                    XSSFClientAnchor var34 = new XSSFClientAnchor(12700, 12700, -12700, -12700, Integer.parseInt(var12), Integer.parseInt(var11), var24 + 1, var23 + 1);
+//                    var34.setAnchorType(AnchorType.MOVE_AND_RESIZE);
+//                    var33.createPicture(var34, var1.addPicture(var32, 5));
+//                } catch (IOException var31) {
+//                    var31.printStackTrace();
+//                }
+//            }
+//
+//            if (var2 instanceof XSSFSheet) {
+//                try {
+//                    a(var14, var1, var2, var19, var20, var15, Integer.parseInt(var11), Integer.parseInt(var12), var23 + 1, var24 + 1, var17);
+//                } catch (Exception var30) {
+//                    var30.printStackTrace();
+//                }
+//            }
+//        }
+//    }
+//
+//    public static void a(String var0, Workbook var1, Sheet var2, int var3, int var4, String var5, int var6, int var7, int var8, int var9, JSONObject var10) {
+//        String[] var11 = var0.split("\\|");
+//        int var12 = var11.length;
+//        Cell var13 = var2.getRow(var6).getCell(var7);
+//        CellStyle var14 = var13.getCellStyle();
+//        var14.setWrapText(true);
+//        Font var15 = var1.getFontAt(var14.getFontIndex());
+//        var15.setFontName("Microsoft YaHei");
+//        var15.setFontHeightInPoints((short)10);
+//        CreationHelper var16 = var1.getCreationHelper();
+//        String var17 = "";
+//        if (null != var10 && var10.containsKey("color")) {
+//            var17 = var10.getString("color");
+//        }
+//
+//        String var18;
+//        if (var5.equals("lefttop")) {
+//            var18 = a(var11, var3, var4);
+//            var13.setCellValue(var18);
+//            Drawing var19 = var2.createDrawingPatriarch();
+//            if (var11.length == 2) {
+//                ExcelUtil.paintLine(var19, var19.createAnchor(0, 0, 0, 0, var7, var6, var9, var8), var5, var17);
+//            } else if (var11.length == 3) {
+//                ExcelUtil.paintLine(var19, var19.createAnchor(0, 0, 0, -((int)((double)var4 / 2.5D)) * 12700, var7, var6, var9, var8), var5, var17);
+//                ExcelUtil.paintLine(var19, var19.createAnchor(0, 0, -var3 / 4 * 12700, 0, var7, var6, var9, var8), var5, var17);
+//            }
+//        } else {
+//            var18 = b(var11, var3, var4);
+//            var13.setCellValue(var18);
+//            a(var2, var16, var7, var6, var9, var8, var4, var3, var12 - 1, var5, var17);
+//        }
+//
+//        var14.setFont(var15);
+//        var13.setCellStyle(var14);
+//    }
+//
+//    public static String a(String[] var0, int var1, int var2) {
+//        int var3 = var0.length;
+//        if (var3 < 1 && var3 > 3) {
+//            return "";
+//        } else {
+//            int var4 = var1 / 4;
+//            if (var3 == 2) {
+//                var4 -= var0[1].length();
+//                if (var1 < 150) {
+//                    var4 -= var0[1].length() * 3;
+//                }
+//            } else {
+//                if (var1 < 186) {
+//                    var4 -= var0[2].length();
+//                }
+//
+//                if (var1 < 160) {
+//                    if (var0[2].length() == 2) {
+//                        var4 -= var0[2].length() * 2;
+//                    } else if (var0[2].length() > 2) {
+//                        var4 -= var0[2].length();
+//                    }
+//                }
+//
+//                var4 -= var0[2].length();
+//                if (var0[2].length() > 3) {
+//                    var4 -= var0[2].length();
+//                }
+//            }
+//
+//            String var5 = "";
+//
+//            int var6;
+//            for(var6 = 0; var6 < var4; ++var6) {
+//                var5 = var5 + " ";
+//            }
+//
+//            var6 = var2 / 20;
+//            if (var3 == 2) {
+//                var5 = var5 + var0[1];
+//            } else {
+//                var5 = var5 + var0[2];
+//            }
+//
+//            int var7;
+//            for(var7 = 0; var7 < var6; ++var7) {
+//                var5 = var5 + "\n";
+//            }
+//
+//            if (var3 == 2) {
+//                var5 = var5 + var0[0];
+//            }
+//
+//            if (var3 == 3) {
+//                var5 = var5 + var0[0];
+//                var7 = var1 / 4;
+//                if (var1 < 270) {
+//                    var7 = var7 - var0[0].length() * 2 - var0[1].length() * 2;
+//                }
+//
+//                if (var1 < 160) {
+//                    var7 = var7 - var0[0].length() - var0[1].length();
+//                }
+//
+//                var7 = var7 - var0[0].length() - var0[1].length();
+//                if (var0[0].length() > 3) {
+//                    var7 -= var0[0].length();
+//                }
+//
+//                if (var0[1].length() > 3) {
+//                    if (var1 > 270) {
+//                        var7 -= var0[1].length() * 2;
+//                    } else {
+//                        var7 -= var0[1].length();
+//                    }
+//                }
+//
+//                String var8 = "";
+//
+//                for(int var9 = 0; var9 < var7; ++var9) {
+//                    var8 = var8 + " ";
+//                }
+//
+//                var5 = var5 + var8 + var0[1];
+//            }
+//
+//            return var5;
+//        }
+//    }
+//
+//    public static String b(String[] var0, int var1, int var2) {
+//        int var3 = var0.length;
+//        if (var3 < 1 && var3 > 3) {
+//            return "";
+//        } else {
+//            int var4 = var1 / 4;
+//            if (var3 == 2) {
+//                var4 -= var0[1].length();
+//                if (var1 < 240) {
+//                    if (var0[1].length() > 3) {
+//                        var4 -= var0[1].length();
+//                    }
+//
+//                    var4 -= var0[1].length();
+//                }
+//            } else {
+//                if (var1 < 240) {
+//                    if (var0[2].length() > 3) {
+//                        var4 -= var0[2].length();
+//                    }
+//
+//                    var4 -= var0[2].length();
+//                }
+//
+//                var4 -= var0[2].length();
+//            }
+//
+//            String var5 = "";
+//            int var6 = var2 / 20;
+//            var5 = var5 + var0[0];
+//            int var7;
+//            if (var3 == 2) {
+//                for(var7 = 0; var7 < var6; ++var7) {
+//                    var5 = var5 + "\n";
+//                }
+//
+//                for(var7 = 0; var7 < var4; ++var7) {
+//                    var5 = var5 + " ";
+//                }
+//
+//                var5 = var5 + var0[1];
+//            }
+//
+//            if (var3 == 3) {
+//                var7 = var1 / 4;
+//                var7 = var7 - var0[0].length() * 2 - var0[1].length() * 2;
+//                if (var1 < 150) {
+//                    var7 = var7 - var0[0].length() * 2 - var0[1].length() * 2;
+//                }
+//
+//                if (var0[1].length() > 2) {
+//                    if (var1 < 260) {
+//                        var7 -= var0[1].length();
+//                    }
+//
+//                    var7 -= var0[1].length();
+//                }
+//
+//                if (var0[0].length() > 3) {
+//                    var7 -= var0[0].length();
+//                }
+//
+//                String var8 = " ";
+//
+//                int var9;
+//                for(var9 = 0; var9 < var7; ++var9) {
+//                    var8 = var8 + " ";
+//                }
+//
+//                var5 = var5 + var8 + var0[1];
+//
+//                for(var9 = 0; var9 < var6; ++var9) {
+//                    var5 = var5 + "\n";
+//                }
+//
+//                for(var9 = 0; var9 < var7; ++var9) {
+//                    var5 = var5 + " ";
+//                }
+//
+//                var5 = var5 + var0[2];
+//            }
+//
+//            return var5;
+//        }
+//    }
+//
+//    public static void a(Sheet var0, CreationHelper var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, String var9, String var10) {
+//        Drawing var11;
+//        ClientAnchor var12;
+//        if (var8 == 1) {
+//            var11 = var0.createDrawingPatriarch();
+//            var12 = var1.createClientAnchor();
+//            var12.setCol1(var2);
+//            var12.setRow1(var3);
+//            var12.setCol2(var4);
+//            var12.setRow2(var5);
+//            ExcelUtil.paintLine(var11, var12, var9, var10);
+//        } else if (var8 == 2) {
+//            var11 = var0.createDrawingPatriarch();
+//            var12 = var1.createClientAnchor();
+//            var12.setCol1(var2);
+//            var12.setRow1(var3);
+//            var12.setCol2(var4);
+//            var12.setRow2(var5);
+//            var12.setDx2(-var7 / 4 * 12700);
+//            ExcelUtil.paintLine(var11, var12, var9, var10);
+//            ClientAnchor var13 = var1.createClientAnchor();
+//            Drawing var14 = var0.createDrawingPatriarch();
+//            var13.setCol1(var2);
+//            var13.setRow1(var3);
+//            var13.setCol2(var4);
+//            var13.setRow2(var5);
+//            var13.setDy1((int)((double)var6 / 2.5D) * 12700);
+//            ExcelUtil.paintLine(var14, var13, var9, var10);
+//        }
+//
+//    }
+//
+//    private void a(Sheet var1, SXSSFWorkbook var2, List<Map<String, Object>> var3, Map<String, String> var4, Map<String, Object> var5) {
+//        Drawing var6 = var1.createDrawingPatriarch();
+//
+//        for(int var7 = 0; var7 < var3.size(); ++var7) {
+//            Map var8 = (Map)var3.get(var7);
+//            boolean var9 = false;
+//            boolean var10 = false;
+//            int var23 = Integer.valueOf(var8.get("cell").toString());
+//            int var22 = Integer.valueOf(var8.get("row").toString());
+//            String var11 = var8.get("text").toString();
+//            String var12 = var8.get("display").toString();
+//            Map var13 = this.a(var1, var4, var22, var23);
+//            Integer var14 = (Integer)var13.get("width");
+//            Integer var15 = (Integer)var13.get("height");
+//            Object var16 = null;
+//            String var17 = (String)var8.get("layer_id");
+//            Object var18 = var5.get(var17);
+//            if (null != var18) {
+//                String[] var19 = String.valueOf(var18).split(",");
+//                var22 = Integer.parseInt(var19[0]);
+//                var23 = Integer.parseInt(var19[1]);
+//            }
+//
+//            byte[] var24;
+//            if ("img".equals(var12)) {
+//                var24 = this.a(var11);
+//            } else {
+//                var24 = GoogleBarCodeUtils.createCodeToFile(var11, var12, var14, var15);
+//            }
+//
+//            String var25 = (String)var4.get(var22 + "," + var23);
+//            if (oConvertUtils.isNotEmpty(var25)) {
+//                String[] var20 = var25.split(",");
+//                XSSFClientAnchor var21 = new XSSFClientAnchor(0, 0, var14, var15, var23, var22, Integer.parseInt(var20[1]) + 1, Integer.parseInt(var20[0]) + 1);
+//                var6.createPicture(var21, var2.addPicture(var24, 5));
+//            } else {
+//                XSSFClientAnchor var26 = new XSSFClientAnchor(0, 0, var14, var15, var23, var22, var23 + 1, var22 + 1);
+//                var6.createPicture(var26, var2.addPicture(var24, 5));
+//            }
+//        }
+//
+//    }
+//
+//    public byte[] a(String var1) {
+//        URL var2 = null;
+//        Object var3 = null;
+//        byte[] var7;
+//        if (var1.contains("http")) {
+//            try {
+//                var2 = new URL(var1);
+//                if (var1.contains("https")) {
+//                    var7 = b.a(var1);
+//                    return var7;
+//                } else {
+//                    HttpURLConnection var4 = null;
+//                    var4 = (HttpURLConnection)var2.openConnection();
+//                    var4.setRequestMethod("GET");
+//                    var4.setConnectTimeout(50000);
+//                    InputStream var5 = var4.getInputStream();
+//                    var7 = a(var5);
+//                    return var7;
+//                }
+//            } catch (Exception var6) {
+//                var6.printStackTrace();
+//                return null;
+//            }
+//        } else {
+//            var7 = this.c(var1);
+//            return var7;
+//        }
+//    }
+//
+//    public Map<String, Integer> a(Sheet var1, Map<String, String> var2, Integer var3, Integer var4) {
+//        HashMap var5 = new HashMap();
+//        String var6 = (String)var2.get(var3 + "," + var4);
+//        Row var7 = var1.getRow(var3);
+//        Cell var8 = var7.getCell(var4);
+//        var8.setCellValue("");
+//        int var9 = (int)var8.getSheet().getColumnWidthInPixels(var8.getColumnIndex());
+//        int var10 = (int)var7.getHeightInPoints();
+//        int var11 = 0;
+//        int var12 = 0;
+//        int var13 = var3;
+//        int var14 = var4;
+//        if (oConvertUtils.isNotEmpty(var6)) {
+//            String[] var15 = var6.split(",");
+//            int var16 = Integer.parseInt(var15[0]);
+//            int var17 = Integer.parseInt(var15[1]);
+//
+//            int var18;
+//            for(var18 = var7.getRowNum() + 1; var18 < var16 + 1; ++var18) {
+//                Row var19 = var1.getRow(var18);
+//                if (var19 != null) {
+//                    var12 += (int)var1.getRow(var18).getHeightInPoints();
+//                }
+//            }
+//
+//            for(var18 = var8.getColumnIndex() + 1; var18 < var17 + 1; ++var18) {
+//                var11 += (int)var1.getColumnWidthInPixels(var18);
+//            }
+//        }
+//
+//        var9 += var11;
+//        var10 += var12;
+//        var5.put("width", var9);
+//        var5.put("height", var10);
+//        return var5;
+//    }
+//
+//    public XSSFColor b(String var1) {
+//        XSSFColor var2 = new XSSFColor();
+//        if (var1.contains("rgb")) {
+//            var1 = var1.replace("rgb", "").replace("(", "").replace(")", "");
+//            String[] var3 = var1.split(",");
+//            if (var3.length == 3) {
+//                byte[] var4 = new byte[]{(byte)Integer.parseInt(var3[0]), (byte)Integer.parseInt(var3[1]), (byte)Integer.parseInt(var3[2])};
+//                var2.setRGB(var4);
+//            }
+//        } else if (var1.contains("#") && var1.length() > 6) {
+//            byte[] var5 = new byte[]{(byte)Integer.parseInt(var1.substring(1, 3), 16), (byte)Integer.parseInt(var1.substring(3, 5), 16), (byte)Integer.parseInt(var1.substring(5, 7), 16)};
+//            var2.setRGB(var5);
+//        }
+//
+//        return var2;
+//    }
+//}

+ 0 - 350
boman-report/src/main/java/org/jeecg/modules/jmreport/desreport/render/a/a/b.java

@@ -1,350 +0,0 @@
-//package org.jeecg.modules.jmreport.desreport.render.a.a;
-//
-//import com.alibaba.fastjson.JSONArray;
-//import com.alibaba.fastjson.JSONObject;
-//import com.alibaba.fastjson.parser.Feature;
-//import java.util.HashMap;
-//import java.util.Iterator;
-//import java.util.LinkedHashMap;
-//import java.util.List;
-//import java.util.Map;
-//import java.util.Map.Entry;
-//import org.jeecg.modules.jmreport.common.constant.ExpConstant;
-//import org.jeecg.modules.jmreport.common.util.oConvertUtils;
-//import org.jeecg.modules.jmreport.common.vo.Result;
-//import org.jeecg.modules.jmreport.desreport.entity.JimuReport;
-//import org.jeecg.modules.jmreport.desreport.model.RenderInfo;
-//import org.jeecg.modules.jmreport.desreport.model.ReportDbInfo;
-//import org.jeecg.modules.jmreport.desreport.render.handler.CellsRenderHandler;
-//import org.jeecg.modules.jmreport.desreport.render.handler.RowRenderHandler;
-//import org.jeecg.modules.jmreport.desreport.render.handler.RowsRenderHandler;
-//import org.jeecg.modules.jmreport.desreport.render.utils.FreeMarkerUtils;
-//import org.jeecg.modules.jmreport.desreport.render.utils.RegexMatches;
-//import org.jeecg.modules.jmreport.desreport.render.utils.RenderUtil;
-//import org.slf4j.Logger;
-//import org.slf4j.LoggerFactory;
-//import org.springframework.context.annotation.Primary;
-//import org.springframework.stereotype.Component;
-//
-//@Component
-//@Primary
-//public class b extends a {
-//    private static final Logger k = LoggerFactory.getLogger(b.class);
-//
-//    public b() {
-//    }
-//
-//    public boolean support(RenderInfo renderInfo) {
-//        return this.a((Class)b.class, (RenderInfo)renderInfo);
-//    }
-//
-//    public Result<JimuReport> render(RenderInfo renderInfo) {
-//        this.a();
-//        JSONObject var2 = this.a(renderInfo, this.h);
-//        JSONObject var3 = this.b(renderInfo, var2);
-//        if (oConvertUtils.isNotEmpty(this.e)) {
-//            this.a(var3, this.e);
-//        }
-//
-//        if (oConvertUtils.isNotEmpty(this.f)) {
-//            this.a(var3, this.f);
-//        }
-//
-//        if (oConvertUtils.isNotEmpty(this.g)) {
-//            this.a(var3, this.g);
-//        }
-//
-//        var3.put("len", var3.size() + 20);
-//        this.c.put("rows", var3);
-//        this.c.put("merges", renderInfo.getMerges());
-//        this.i.put("len", renderInfo.getLen());
-//        if (oConvertUtils.isNotEmpty(renderInfo.getNewCols())) {
-//            this.i.putAll(renderInfo.getNewCols());
-//        }
-//
-//        this.a.setJsonStr(this.c.toString());
-//        return Result.OK(this.a);
-//    }
-//
-//    private void a(JSONObject var1, JSONArray var2) {
-//        Iterator var3 = var2.iterator();
-//
-//        while(true) {
-//            Integer var7;
-//            Integer var8;
-//            String var9;
-//            JSONObject var10;
-//            do {
-//                Integer var6;
-//                do {
-//                    if (!var3.hasNext()) {
-//                        return;
-//                    }
-//
-//                    Object var4 = var3.next();
-//                    JSONObject var5 = (JSONObject)var4;
-//                    var6 = var5.getInteger("row");
-//                    var7 = var5.getInteger("col");
-//                    var8 = oConvertUtils.getInt(var5.getInteger("colspan"), 0);
-//                    var9 = var5.getString("layer_id");
-//                } while(var7 < this.j);
-//
-//                var10 = var1.getJSONObject(var6.toString());
-//            } while(!oConvertUtils.isNotEmpty(var10));
-//
-//            JSONObject var11 = var10.getJSONObject("cells");
-//            Integer var12 = var8 - 1 >= 0 ? var8 - 1 : var8;
-//
-//            for(int var13 = var7; var13 <= var7 + var12; ++var13) {
-//                JSONObject var14 = new JSONObject();
-//                var14.put("text", "");
-//                var14.put("virtual", var9);
-//                var11.put(var13 + "", var14);
-//            }
-//        }
-//    }
-//
-//    private void a() {
-//        LinkedHashMap var1 = new LinkedHashMap(5);
-//        LinkedHashMap var2 = new LinkedHashMap();
-//        Iterator var3 = this.b.entrySet().iterator();
-//
-//        Object var6;
-//        Object var7;
-//        while(var3.hasNext()) {
-//            Entry var4 = (Entry)var3.next();
-//            String var5 = (String)var4.getKey();
-//            var6 = this.b.get(var5);
-//            var7 = this.b.get("expData");
-//            if (oConvertUtils.isNotEmpty(var7)) {
-//                Map var8 = (Map)var7;
-//                var2.putAll(var8);
-//            }
-//
-//            if (var6 instanceof ReportDbInfo) {
-//                ReportDbInfo var14 = (ReportDbInfo)var6;
-//                List var9 = var14.getList();
-//                if (oConvertUtils.isNotEmpty(var9)) {
-//                    var1.put(var5, var9.get(0));
-//                } else {
-//                    var1.put(var5, new Object());
-//                }
-//            } else {
-//                var1.put(var5, var4.getValue());
-//            }
-//        }
-//
-//        String var10 = this.h.toString();
-//        if (oConvertUtils.isNotEmpty(var2)) {
-//            Iterator var11 = var2.entrySet().iterator();
-//
-//            while(var11.hasNext()) {
-//                Entry var13 = (Entry)var11.next();
-//                var6 = var13.getKey();
-//                var7 = var13.getValue();
-//                if (oConvertUtils.isNotEmpty(var7)) {
-//                    var10 = var10.replace(var6.toString(), var7.toString());
-//                } else {
-//                    var10 = var10.replace(var6.toString(), "");
-//                }
-//            }
-//        }
-//
-//        var10 = var10.replaceAll("#\\{", "☯{");
-//        String var12 = FreeMarkerUtils.a(var10, var1);
-//        var12 = var12.replaceAll("☯\\{", "\\${");
-//        var12 = var12.replace("\"{\"", "{\"").replace("\"}\"", "\"}");
-//        this.h = JSONObject.parseObject(var12, new Feature[]{Feature.OrderedField});
-//    }
-//
-//    private JSONObject b(RenderInfo var1, JSONObject var2) {
-//        JSONObject var3 = new JSONObject(true);
-//        Integer var4 = 0;
-//        Integer var5 = 0;
-//        Integer var6 = 0;
-//        Object var7 = new HashMap(5);
-//        Boolean var8 = true;
-//        Integer var9 = 0;
-//        Iterator var10 = var2.entrySet().iterator();
-//
-//        while(true) {
-//            JSONObject var13;
-//            Object var14;
-//            do {
-//                do {
-//                    Entry var11;
-//                    Object var12;
-//                    do {
-//                        if (!var10.hasNext()) {
-//                            return var3;
-//                        }
-//
-//                        var11 = (Entry)var10.next();
-//                        var12 = var11.getValue();
-//                    } while(!(var12 instanceof JSONObject));
-//
-//                    var13 = (JSONObject)var12;
-//                    var14 = var11.getKey();
-//                } while(oConvertUtils.isEmpty(var14));
-//            } while("-1".equals(var14));
-//
-//            var6 = Integer.parseInt(var14.toString());
-//            JSONObject var15 = var13.getJSONObject("cells");
-//            if (var15 instanceof JSONObject) {
-//                Iterator var16 = var15.entrySet().iterator();
-//
-//                while(var16.hasNext()) {
-//                    Entry var17 = (Entry)var16.next();
-//                    Object var18 = var17.getValue();
-//                    if (var18 instanceof JSONObject) {
-//                        String var19 = var17.getKey().toString();
-//                        JSONObject var20 = (JSONObject)var18;
-//                        String var21 = var20.getString("text");
-//                        if (oConvertUtils.isNotEmpty(var21)) {
-//                            Map var22 = this.a(var1, var13, var6, var15, var19, var20, var21, (Map)var7);
-//                            if (oConvertUtils.isNotEmpty(var22)) {
-//                                var7 = var22;
-//                            }
-//                        }
-//
-//                        String var27 = var20.getString("virtual");
-//                        if (oConvertUtils.isNotEmpty(var27) && Integer.parseInt(var19) >= this.j) {
-//                            var20.remove("virtual");
-//                        }
-//
-//                        var15.putIfAbsent(var19, var20);
-//                    }
-//                }
-//
-//                var13.put("cells", var15);
-//            }
-//
-//            if (var5 == 0) {
-//                var5 = var6;
-//            }
-//
-//            Boolean var23 = false;
-//            JSONObject var24 = this.a(var1, var2, var13, var6, var5, var8);
-//            if (oConvertUtils.isNotEmpty(var24) && var24.size() > 0) {
-//                var3.putAll(var24);
-//                var23 = true;
-//                var4 = var6;
-//                var5 = var5 + var24.size();
-//                var8 = false;
-//            }
-//
-//            if (!var23) {
-//                if (var4 > 0) {
-//                    var4 = 0;
-//                }
-//
-//                if (var9 > 0) {
-//                    Integer var25 = var6 - var9;
-//                    if (var25 > 1) {
-//                        var5 = var5 + (var25 - 2);
-//                    }
-//                }
-//
-//                if (var5 < var6) {
-//                    var5 = var6;
-//                }
-//
-//                var13 = RenderUtil.a(var13, (var1x, var2x) -> {
-//                    List var31 = RegexMatches.f(var2x);
-//                    if (oConvertUtils.isNotEmpty(var31) && var31.size() == 3) {
-//                        var2x = var2x.replace((CharSequence)var31.get(0), (String)var31.get(0) + ":" + (String)var31.get(1) + var5.toString());
-//                    }
-//
-//                    return var2x;
-//                }, ExpConstant.FUNCTION);
-//                if (oConvertUtils.isNotEmpty(var13)) {
-//                    JSONObject var26 = var13.getJSONObject("cells");
-//                    if (oConvertUtils.isNotEmpty(var26)) {
-//                        var3.put(var5.toString(), var13);
-//                    }
-//                }
-//
-//                var9 = var6;
-//                var5 = var5 + 1;
-//                if (var6 > var5) {
-//                    var5 = var6;
-//                }
-//            }
-//        }
-//    }
-//
-//    public JSONObject a(RenderInfo var1, JSONObject var2, JSONObject var3, Integer var4, Integer var5, Boolean var6) {
-//        if (oConvertUtils.isNotEmpty(this.rowRenderHandlerMap)) {
-//            Iterator var7 = this.rowRenderHandlerMap.values().iterator();
-//
-//            while(var7.hasNext()) {
-//                RowRenderHandler var8 = (RowRenderHandler)var7.next();
-//                if (var8.support(var3)) {
-//                    if (var6) {
-//                        var8.beforeRenderRows(var1, var2);
-//                    }
-//
-//                    JSONObject var9 = var8.beforeRenderRow(var1, var2, var3, var4);
-//                    if (oConvertUtils.isNotEmpty(var9)) {
-//                        var3 = var9;
-//                    }
-//
-//                    JSONObject var10 = var8.render(var1, var2, var3, var4, var5);
-//                    if (null == var10 || var10.size() == 0) {
-//                        JSONObject var11 = var3.getJSONObject("cells");
-//                        if (null != var11 && var11.size() > 0) {
-//                            Iterator var12 = var11.entrySet().iterator();
-//
-//                            while(var12.hasNext()) {
-//                                Entry var13 = (Entry)var12.next();
-//                                String var14 = var13.getKey().toString();
-//                                JSONObject var15 = (JSONObject)var13.getValue();
-//                                if (oConvertUtils.isNotEmpty(var15)) {
-//                                    String var16 = var15.getString("text");
-//                                    if (oConvertUtils.isNotEmpty(var16) && var16.indexOf("${") != -1) {
-//                                        var15.put("text", "");
-//                                    }
-//                                }
-//                            }
-//                        }
-//                    }
-//
-//                    return var10;
-//                }
-//            }
-//        }
-//
-//        return null;
-//    }
-//
-//    public Map a(RenderInfo var1, JSONObject var2, Integer var3, JSONObject var4, String var5, JSONObject var6, String var7, Map var8) {
-//        if (oConvertUtils.isNotEmpty(this.cellsRenderHandlerMap)) {
-//            Iterator var9 = this.cellsRenderHandlerMap.values().iterator();
-//
-//            while(var9.hasNext()) {
-//                CellsRenderHandler var10 = (CellsRenderHandler)var9.next();
-//                if (var10.support(var6, var7)) {
-//                    var10.beforeRender(var1, var6, var7);
-//                    return var10.render(var1, var2, var3, var4, var6, var5, var7, var8);
-//                }
-//            }
-//        }
-//
-//        return null;
-//    }
-//
-//    public JSONObject a(RenderInfo var1, JSONObject var2) {
-//        if (oConvertUtils.isNotEmpty(this.rowsRenderHandlerMap)) {
-//            Iterator var3 = this.rowsRenderHandlerMap.values().iterator();
-//
-//            while(var3.hasNext()) {
-//                RowsRenderHandler var4 = (RowsRenderHandler)var3.next();
-//                if (var4.support(var1, var2)) {
-//                    return var4.render(var1, var2);
-//                }
-//            }
-//        }
-//
-//        return var2;
-//    }
-//}

+ 0 - 17
boman-report/src/main/java/org/jeecg/modules/jmreport/desreport/service/IJmReportExportExcel.java

@@ -1,17 +0,0 @@
-//package org.jeecg.modules.jmreport.desreport.service;
-//
-//import com.alibaba.fastjson.JSONObject;
-//
-//import java.util.List;
-//import java.util.Map;
-//
-///**
-// * @author shiqian
-// * @date 2021年08月19日 11:42
-// **/
-//public interface IJmReportExportExcel {
-//
-//    Map<String, Object> exportExcel(String var1, JSONObject var2, List var3);
-//
-//    Map<String, Object> exportEmptyExcel(String var1, JSONObject var2, List var3);
-//}

+ 0 - 0
boman-report/src/main/resources/static/jmreport/desreport_/corelib/icons/f08cce4fc757983ae0c5e705ed6324ad.png → boman-report/src/main/resources/static/jmreport/desreport_/corelib/icons/f08cce4fc757983ae0c5e705ed6324ad123.png


+ 11 - 5
boman-report/src/main/resources/static/jmreport/desreport_/corelib/jmsheet.css

@@ -770,7 +770,7 @@ body {
   opacity: 0.9;
 }
 .jm-sheet-icon .jm-sheet-icon-img.help {
-  background-image: url(./icons/f08cce4fc757983ae0c5e705ed6324ad.png);
+  background-image: url(icons/f08cce4fc757983ae0c5e705ed6324ad123.png);
   opacity: 0.9;
 }
 .jm-sheet-icon .jm-sheet-icon-img.view-setting {
@@ -804,10 +804,10 @@ body {
   background-image: url(./icons/5ea0efc04b8a7bd10eb8eac1374caaf9.png);
   opacity: 0.9;
 }
-.jm-sheet-icon .jm-sheet-icon-img.qrcode {
-  background-image: url(./icons/c9d011bdbaec17669808f9d88fc2d366.png);
-  opacity: 0.8;
-}
+/*.jm-sheet-icon .jm-sheet-icon-img.qrcode {*/
+/*  background-image: url(./icons/c9d011bdbaec17669808f9d88fc2d366.png);*/
+/*  opacity: 0.8;*/
+/*}*/
 .jm-sheet-icon .jm-sheet-icon-img.barcode {
   background-image: url(./icons/e67b7bdc19df9ede78820d9bf5f59b73.png);
   opacity: 0.8;
@@ -1258,6 +1258,12 @@ ty-drag-content > div {
   cursor: move;
   position: absolute;
 }
+.ty-drag-content{
+  display: none;
+}
+.ty-drag-container{
+  display: none;
+}
 .ty-drag-circle {
   display: none;
 }

+ 6 - 6
boman-report/src/main/resources/static/jmreport/desreport_/corelib/jmsheet.js

@@ -59831,7 +59831,7 @@
                 chart: "图表",
                 img: "插入图片",
                 barcode: "条形码",
-                qrcode: "二维码",
+                // qrcode: "二维码",
                 paintformat: "格式刷",
                 clearformat: "清除格式",
                 format: "数据格式",
@@ -59860,7 +59860,7 @@
                 cellLine: "单元格斜线",
                 printSetting: "打印设置",
                 viewSetting: "预览工具条设置",
-                help: "帮助"
+                // help: "帮助"
             },
             rpBar: {
                 exportExcel: "exportExcel",
@@ -59878,7 +59878,7 @@
                 print_all: "Canvas打印",
                 print_table: "Html打印",
                 export: "导出",
-                exportExcel_empty: "导出模板",
+                // exportExcel_empty: "导出模板",
                 pdf: "PDF",
                 slider: "清晰度",
                 back_previous: "返回上一页"
@@ -59922,7 +59922,7 @@
                 duration: "持续时间",
                 img: "图片",
                 barcode: "条形码",
-                qrcode: "二维码"
+                // qrcode: "二维码"
             },
             formula: {
                 sum: "求和",
@@ -69170,13 +69170,13 @@
         })(e)
     }
 
-    var vc = [{text: "社区首页", href: "http://www.jimureport.com/"}, {
+    var vc = [{text: "首页", href: "http://118.178.139.79:5000/index"}/*, {
         text: "视频教程",
         href: "http://www.jimureport.com/doc/video"
     }, {text: "帮助文档", href: "http://report.jeecg.com/2078898"}, {
         text: "BUG反馈",
         href: "https://gitee.com/jeecg/JimuReport/issues"
-    }], yc = function (e) {
+    }*/], yc = function (e) {
         !function (e, t) {
             if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function");
             e.prototype = Object.create(t && t.prototype, {

+ 1 - 1
boman-report/src/main/resources/static/jmreport/desreport_/corelib/locale/en.js

@@ -90,7 +90,7 @@
             print_all: "Canvas Print",
             print_table: "Html Print",
             export: "导出",
-            exportExcel_empty: "导出模板",
+            // exportExcel_empty: "导出模板",
             pdf: "PDF",
             slider: "清晰度",
             back_previous: "返回上一页"

+ 4 - 4
boman-report/src/main/resources/static/jmreport/desreport_/corelib/locale/zh-cn.js

@@ -45,7 +45,7 @@
                 chart: "图表",
                 img: "插入图片",
                 barcode: "条形码",
-                qrcode: "二维码",
+                // qrcode: "二维码",
                 paintformat: "格式刷",
                 clearformat: "清除格式",
                 format: "数据格式",
@@ -74,7 +74,7 @@
                 cellLine: "单元格斜线",
                 printSetting: "打印设置",
                 viewSetting: "预览工具条设置",
-                help: "帮助"
+                help: "首页"
             },
             rpBar: {
                 exportExcel: "exportExcel",
@@ -92,7 +92,7 @@
                 print_all: "Canvas打印",
                 print_table: "Html打印",
                 export: "导出",
-                exportExcel_empty: "导出模板",
+                // exportExcel_empty: "导出模板",
                 pdf: "PDF",
                 slider: "清晰度",
                 back_previous: "返回上一页"
@@ -136,7 +136,7 @@
                 duration: "持续时间",
                 img: "图片",
                 barcode: "条形码",
-                qrcode: "二维码"
+                // qrcode: "二维码"
             },
             formula: {
                 sum: "求和",

+ 3 - 3
boman-report/src/main/resources/static/jmreport/desreport_/js/biz/design.js

@@ -830,13 +830,13 @@ vm = new Vue({
                 valueExpression:"", //值表达式
                 valueCoordinate:"", //值坐标
                 dataLabel:(h) => {
-                  return this.reanderTooltip(h,'数据','http://report.jeecg.com/1605007');
+                  return this.reanderTooltip(h,'数据','');
                 },//数据选项卡名称自定义
                 codeLabel:(h) => {
-                  return this.reanderTooltip(h,'二维码设置','http://report.jeecg.com/2290861');
+                  return this.reanderTooltip(h,'二维码设置','');
                 },//二维码选项卡定义    
                 qrCodeLabel:(h) => {
-                  return this.reanderTooltip(h,'条形码设置','http://report.jeecg.com/2290862');
+                  return this.reanderTooltip(h,'条形码设置','');
                 },//条形码选项卡定义
                 functionScreen:false, //表达式弹窗放大缩小操作
                 funDraggable:true //表达式弹窗是否可以拖动

+ 10 - 10
boman-report/src/main/resources/templates/jmreport/desreport/index.ftl

@@ -5,7 +5,7 @@
 <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width">
-    <title>报表设计器 - 积木报表, 免费可视化报表工具!</title>
+    <title>报表设计器</title>
 
     <script>
         let base = "${base}";
@@ -473,7 +473,7 @@
                                         <div style="width:95%;height: 30px;border: none;margin-left: 10px; z-index:999;cursor: pointer;margin-left:27px">
                                             <span class="rightFontSize">数据集管理
                                                 <Tooltip :transfer="true" content="数据源管理文档" placement="left" class="jimu-tooltip">
-                                                    <a class=" help-color" href="http://report.jeecg.com/1835711" target="_blank" style="margin-right: 15px"><Icon size="14" type="ios-help-circle-outline" style="margin-top: 4px;"/></a>
+                                                    <a class=" help-color" href="" target="_blank" style="margin-right: 15px"><Icon size="14" type="ios-help-circle-outline" style="margin-top: 4px;"/></a>
                                                 </Tooltip>
                                             </span>
                                             <Dropdown @on-click="onMenuSelect" placement="bottom-start" :transfer="true">
@@ -520,7 +520,7 @@
                                     <div style="width:100%;height: 45px;border: none;margin-left: 25px;cursor: pointer;margin-top: 10px">
                                       <span @click="createDictClick" class="rightFontSize">数据字典<i style="position: relative;left:100px;font-size: 14px;" class="ivu-icon ivu-icon-md-create"></i></span>
                                       <Tooltip :transfer="true" content="数据字典文档" placement="left" class="jimu-tooltip">
-                                          <a class="jimu-table-tip help-color" href="http://report.jeecg.com/2083759" target="_blank"  style="margin-right: 26px;"><Icon size="14" type="ios-help-circle-outline" style="margin-top: 4px;"/></a>
+                                          <a class="jimu-table-tip help-color" href="" target="_blank"  style="margin-right: 26px;"><Icon size="14" type="ios-help-circle-outline" style="margin-top: 4px;"/></a>
                                       </Tooltip>
                                     </div>
                                 </i-menu>
@@ -564,7 +564,7 @@
                                         <i-option value="number" key="0" class="rightFontSize">数值</i-option>
                                         <i-option value="img" key="2" class="rightFontSize">图片</i-option>
                                         <i-option value="barcode" key="3" class="rightFontSize">条形码</i-option>
-                                        <i-option value="qrcode" key="4" class="rightFontSize">二维码</i-option>
+<#--                                        <i-option value="qrcode" key="4" class="rightFontSize">二维码</i-option>-->
                                         <#--<i-option value="chart" key="5">图表</i-option>-->
                                     </i-select>
                                   </div>
@@ -589,7 +589,7 @@
                                           <template slot="title">
                                               <span class="rightFontSize">补充空白行
                                                 <Tooltip :transfer="true" content="补充空白行文档" placement="left" class="jimu-tooltip">
-                                                    <a class="jimu-table-tip help-color help-margin" href="http://report.jeecg.com/2361240" target="_blank"><Icon size="14" type="ios-help-circle-outline" style="margin-top: 2px"/></a>
+                                                    <a class="jimu-table-tip help-color help-margin" href="" target="_blank"><Icon size="14" type="ios-help-circle-outline" style="margin-top: 2px"/></a>
                                                 </Tooltip>
                                               </span>
                                           </template>
@@ -611,7 +611,7 @@
                                         <template slot="title">
                                           <span class="rightFontSize">分组设置
                                              <Tooltip :transfer="true" content="分组设置文档" placement="left" class="jimu-tooltip">
-                                                <a class="jimu-table-tip help-color help-margin" href="http://report.jeecg.com/2032023" target="_blank"><Icon size="14" type="ios-help-circle-outline" style="margin-top: 2px"/></a>
+                                                <a class="jimu-table-tip help-color help-margin" href="" target="_blank"><Icon size="14" type="ios-help-circle-outline" style="margin-top: 2px"/></a>
                                             </Tooltip>      
                                           </span>
                                         </template>
@@ -647,7 +647,7 @@
                                             <template slot="title">
                                                 <span class="rightFontSize">小计设置
                                                     <Tooltip :transfer="true" content="分组小计文档" placement="left" class="jimu-tooltip">
-                                                        <a class="jimu-table-tip help-color help-margin" href="http://report.jeecg.com/2276025" target="_blank"><Icon size="14" type="ios-help-circle-outline" style="margin-top: 2px"/></a>
+                                                        <a class="jimu-table-tip help-color help-margin" href="" target="_blank"><Icon size="14" type="ios-help-circle-outline" style="margin-top: 2px"/></a>
                                                     </Tooltip>  
                                                 </span>
                                             </template>
@@ -667,7 +667,7 @@
                                     <template slot="title">
                                         <span class="rightFontSize">超链接设置
                                             <Tooltip :transfer="true" content="超链接文档" placement="left" class="jimu-tooltip">
-                                                <a class="jimu-table-tip help-color help-margin" href="http://report.jeecg.com/2306127" target="_blank"><Icon size="14" type="ios-help-circle-outline" style="margin-top: 2px"/></a>
+                                                <a class="jimu-table-tip help-color help-margin" href="" target="_blank"><Icon size="14" type="ios-help-circle-outline" style="margin-top: 2px"/></a>
                                             </Tooltip>
                                         </span>
                                     </template>
@@ -696,7 +696,7 @@
                                       <template slot="title">
                                           <span class="rightFontSize">其他设置
                                               <Tooltip :transfer="true" content="数据格式化文档" placement="left" class="jimu-tooltip">
-                                                  <a class="jimu-table-tip help-color help-margin" href="http://report.jeecg.com/2084138" target="_blank"><Icon size="14" type="ios-help-circle-outline" style="margin-top: 2px"/></a>
+                                                  <a class="jimu-table-tip help-color help-margin" href="" target="_blank"><Icon size="14" type="ios-help-circle-outline" style="margin-top: 2px"/></a>
                                               </Tooltip>  
                                           </span>
                                       </template>
@@ -710,7 +710,7 @@
                                       <template slot="title">
                                           <span class="rightFontSize">主子报表参数设置
                                             <Tooltip :transfer="true" content="主子报表文档" placement="left" class="jimu-tooltip">
-                                                <a class="jimu-table-tip help-color help-margin" href="http://report.jeecg.com/2296481" target="_blank"><Icon size="14" type="ios-help-circle-outline" style="margin-top: 2px"/></a>
+                                                <a class="jimu-table-tip help-color help-margin" href="" target="_blank"><Icon size="14" type="ios-help-circle-outline" style="margin-top: 2px"/></a>
                                             </Tooltip>
                                           </span>
                                       </template>

+ 1 - 1
boman-report/src/main/resources/templates/jmreport/desreport/list.ftl

@@ -118,7 +118,7 @@
     <div class="layout" style="margin-left: -30px;margin-top: -10px;">
       <div style="background-color: #1890FF;height: 47px">
         <span class="aui-logo"></span>
-        <span class="jimu-header">欢迎进入积木报表工作台 </span>
+        <span class="jimu-header"> </span>
       </div>
         <Layout>
             <Sider breakpoint="md" collapsible :collapsed-width="78" v-model="isCollapsed">