⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 foreachtag.java

📁 一个java生成自动生成Excel
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                    shift = processGroupedData(groupedData, beans, body, sheetTransformer);                    beans.remove(GROUP_DATA_KEY);                    if (savedGroupData != null) {                        beans.put(GROUP_DATA_KEY, savedGroupData);                    }                } catch (NoSuchMethodException e) {                    log.error(e, new Exception("Can't group collection data by " + groupBy, e));                } catch (IllegalAccessException e) {                    log.error(e, new Exception("Can't group collection data by " + groupBy, e));                } catch (InvocationTargetException e) {                    log.error(e, new Exception("Can't group collection data by " + groupBy, e));                }            }            shift.add(new ResultTransformation(shiftNumber, shiftNumber));            shift.setTagProcessResult(true);            return shift;        }        log.warn("Collection " + items + " is empty");        tagContext.getSheetTransformationController().removeBodyRows(body);        ResultTransformation shift = new ResultTransformation(0);        shift.add(new ResultTransformation(-1, -body.getNumberOfRows()));        shift.setLastProcessedRow(-1);        shift.setTagProcessResult(true);        return shift;    }    private ResultTransformation processOneRowTag(SheetTransformer sheetTransformer) {        Block body = tagContext.getTagBody();        int shiftNumber = 0;        if (itemsCollection != null && !itemsCollection.isEmpty()) {            tagContext.getSheetTransformationController().removeLeftRightBorders(body);            shiftNumber += -2;            Map beans = tagContext.getBeans();            ResultTransformation shift = new ResultTransformation();            shift.setLastProcessedRow(-1);            if (groupBy == null || groupBy.length() == 0) {                shiftNumber += tagContext.getSheetTransformationController().duplicateRight(body, itemsCollection.size() - 1);                processCollectionItemsOneRow(beans, body, shift, sheetTransformer);            } else {                try {                    Collection groupedData = ReportUtil.groupCollectionData(itemsCollection, groupBy, groupOrder, select, configuration);                    shiftNumber += tagContext.getSheetTransformationController().duplicateRight(body, groupedData.size() - 1);                    Object savedGroupData = null;                    if (beans.containsKey(GROUP_DATA_KEY)) {                        savedGroupData = beans.get(GROUP_DATA_KEY);                    }                    processGroupedDataOneRow(groupedData, beans, body, shift, sheetTransformer);                    beans.remove(GROUP_DATA_KEY);                    if (savedGroupData != null) {                        beans.put(GROUP_DATA_KEY, savedGroupData);                    }                } catch (NoSuchMethodException e) {                    log.error(e, new Exception("Can't group collection data by " + groupBy, e));                } catch (IllegalAccessException e) {                    log.error(e, new Exception("Can't group collection data by " + groupBy, e));                } catch (InvocationTargetException e) {                    log.error(e, new Exception("Can't group collection data by " + groupBy, e));                }            }            shift.addRightShift((short) shiftNumber);            shift.setTagProcessResult(true);            return shift;        }        log.warn("Collection " + items + " is empty");        HSSFRow currentRow = tagContext.getSheet().getHssfSheet().getRow(body.getStartRowNum());        tagContext.getSheetTransformationController().removeRowCells(currentRow, body.getStartCellNum(), body.getEndCellNum());        ResultTransformation shift = new ResultTransformation(0);        shift.add( new ResultTransformation((short)-body.getNumberOfColumns(), (short)(-body.getNumberOfColumns() )));        shift.setLastProcessedRow(-1);        shift.setTagProcessResult(true);        return shift;    }    private ResultTransformation processGroupedData(Collection groupedData, Map beans, Block body, SheetTransformer sheetTransformer) {        ResultTransformation shift;        int startRowNum;        int endRowNum;        ResultTransformation processResult;        shift = new ResultTransformation(0);        int k = 0;        for (Iterator iterator = groupedData.iterator(); iterator.hasNext();) {            GroupData groupData = (GroupData) iterator.next();            beans.put(GROUP_DATA_KEY, groupData);            try {                startRowNum = body.getStartRowNum() + shift.getLastRowShift() + body.getNumberOfRows() * k++;                endRowNum = startRowNum + body.getNumberOfRows() - 1;                processResult = sheetTransformer.processRows(tagContext.getSheetTransformationController(), tagContext.getSheet(), startRowNum, endRowNum, beans, null);                shift.add(processResult);            } catch (ParsePropertyException e) {                log.error("Can't parse property ", e);            }        }        return shift;    }    private void processGroupedDataOneRow(Collection groupedData, Map beans, Block body, ResultTransformation shift, SheetTransformer sheetTransformer) {        ResultTransformation processResult;        short startColNum, endColNum;        int k = 0;        for (Iterator iterator = groupedData.iterator(); iterator.hasNext();) {            GroupData groupData = (GroupData) iterator.next();            beans.put(GROUP_DATA_KEY, groupData);            try {                startColNum = (short) (body.getStartCellNum() + shift.getLastCellShift() + body.getNumberOfColumns() * k++);                endColNum = (short) (startColNum + body.getNumberOfColumns() - 1);                processResult = sheetTransformer.processRow(tagContext.getSheetTransformationController(), tagContext.getSheet(), tagContext.getSheet().getHssfSheet().getRow(body.getStartRowNum()),                        startColNum, endColNum, beans, null);                shift.add(processResult);            } catch (ParsePropertyException e) {                log.error("Can't parse property ", e);            }        }    }    private ResultTransformation processCollectionItems(Collection c2, Map beans, Block body, SheetTransformer sheetTransformer) {        ResultTransformation shift = new ResultTransformation(0);        int startRowNum;        int endRowNum;        int index = 0;        ResultTransformation processResult;        int k = 0;        LoopStatus status = new LoopStatus();        if( varStatus != null ){            beans.put( varStatus, status );        }        for (Iterator iterator = c2.iterator(); iterator.hasNext(); index++) {            Object o = iterator.next();            beans.put(var, o);            status.setIndex( index );//                    if (ReportUtil.shouldSelectCollectionData(beans, select, configuration)) {                try {                    startRowNum = body.getStartRowNum() + shift.getLastRowShift() + body.getNumberOfRows() * k++;                    endRowNum = startRowNum + body.getNumberOfRows() - 1;                    processResult = sheetTransformer.processRows(tagContext.getSheetTransformationController(), tagContext.getSheet(), startRowNum, endRowNum, beans, null);                    shift.add(processResult);                } catch (ParsePropertyException e) {                    log.error("Can't parse property ", e);                    throw new RuntimeException("Can't parse property", e);                }//                    }        }        if( varStatus != null ){            beans.remove( varStatus );        }        return shift;    }    private void processCollectionItemsOneRow(Map beans, Block body, ResultTransformation shift, SheetTransformer sheetTransformer) {        int k = 0;        for (Iterator iterator = itemsCollection.iterator(); iterator.hasNext();) {            Object o = iterator.next();            beans.put(var, o);            try {                short startCellNum = (short) (body.getStartCellNum() + shift.getLastCellShift() + body.getNumberOfColumns() * k++);                short endCellNum = (short) (startCellNum + body.getNumberOfColumns() - 1);                ResultTransformation processResult = sheetTransformer.processRow(tagContext.getSheetTransformationController(), tagContext.getSheet(),                        tagContext.getSheet().getHssfSheet().getRow(body.getStartRowNum()),                        startCellNum, endCellNum, beans, null);                shift.add(processResult);            } catch (Exception e) {                log.error("Can't parse property ", e);            }        }    }    private Collection selectCollectionDataToProcess(Map beans) {        Collection c2 = new ArrayList();        for (Iterator iterator = itemsCollection.iterator(); iterator.hasNext();) {            Object o = iterator.next();            beans.put(var, o);            if (ReportUtil.shouldSelectCollectionData(beans, select, configuration)) {                c2.add(o);            }        }        return c2;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -