protected Row createNewRow(Worksheet resultSheet) { Row newRow = Context.getsmlObjectFactory().createRow(); Long currentRow = lastRowForSheet.get(resultSheet); currentRow = currentRow != null ? currentRow : 0; currentRow++; newRow.setR(currentRow); lastRowForSheet.put(resultSheet, currentRow); resultSheet.getSheetData().getRow().add(newRow); newRow.setParent(resultSheet.getSheetData()); return newRow; }
public void clearWorkbook() { for (SheetWrapper sheet : worksheets) { sheet.worksheet.getJaxbElement().getSheetData().getRow().clear(); CTMergeCells mergeCells = sheet.worksheet.getJaxbElement().getMergeCells(); if (mergeCells != null && mergeCells.getMergeCell() != null) { mergeCells.getMergeCell().clear(); } try { CTPageBreak rowBreaks = sheet.worksheet.getContents().getRowBreaks(); if (rowBreaks != null && rowBreaks.getBrk() != null) { rowBreaks.getBrk().clear(); } } catch (Docx4JException e) { throw new ReportFormattingException("An error occurred while clearing docx4j workbook", e); } } workbook.getDefinedNames().getDefinedName().clear(); }
protected void updateOutlines() { for (Document.SheetWrapper sheetWrapper : result.getWorksheets()) { Worksheet resultWorksheet = sheetWrapper.getWorksheet().getJaxbElement(); Worksheet templateWorksheet = template.getSheetByName(sheetWrapper.getName()); if (templateWorksheet.getSheetFormatPr() != null) { resultWorksheet.setSheetFormatPr(XmlUtils.deepCopy(templateWorksheet.getSheetFormatPr(), Context.jcSML)); } } }
protected void updateMergeRegions() { for (Range templateRange : rangeDependencies.templates()) { Worksheet templateSheet = template.getSheetByName(templateRange.getSheet()); Worksheet resultSheet = result.getSheetByName(templateRange.getSheet()); if (templateSheet.getMergeCells() != null) { if (resultSheet.getMergeCells() == null) { CTMergeCells resultMergeCells = new CTMergeCells(); resultMergeCells.setParent(resultSheet); resultSheet.setMergeCells(resultMergeCells); } } for (Range resultRange : rangeDependencies.resultsForTemplate(templateRange)) { if (templateSheet.getMergeCells() != null && templateSheet.getMergeCells().getMergeCell() != null) { for (CTMergeCell templateMergeRegion : templateSheet.getMergeCells().getMergeCell()) { Range mergeRange = Range.fromRange(templateRange.getSheet(), templateMergeRegion.getRef()); if (templateRange.contains(mergeRange) || templateRange.isOneCellRange() && mergeRange.contains(templateRange)) { Offset offset = calculateOffset(templateRange, resultRange); Range resultMergeRange = mergeRange.copy().shift(offset.downOffset, offset.rightOffset); CTMergeCell resultMergeRegion = new CTMergeCell(); resultMergeRegion.setRef(resultMergeRange.toRange()); resultMergeRegion.setParent(resultSheet.getMergeCells()); resultSheet.getMergeCells().getMergeCell().add(resultMergeRegion); } } } } } }
SheetData sheetData = sheet.getJaxbElement().getSheetData(); org.xlsx4j.sml.ObjectFactory factory = org.xlsx4j.jaxb.Context.getsmlObjectFactory(); CTCalcPr ctCalcPr = factory.createCTCalcPr(); List<Cols> lstCols = sheet.getJaxbElement().getCols(); Cols cols = factory.createCols(); for (int i = 0; i < maxColCount; i++) {
public Col getColumnForCell(String sheetName, CellReference cellReference) { Worksheet sheet = getSheetByName(sheetName); List<Cols> colsList = sheet.getCols(); for (Cols cols : colsList) { for (Col col : cols.getCol()) { if (col.getMin() <= cellReference.getColumn() && cellReference.getColumn() <= col.getMax()) { return col; } } } return null; }
protected void updateHeaderAndFooter() { for (Document.SheetWrapper sheetWrapper : result.getWorksheets()) { Worksheet worksheet; try { worksheet = sheetWrapper.getWorksheet().getContents(); } catch (Docx4JException e) { throw new RuntimeException("Unable to get contents of worksheet", e); } if (worksheet.getHeaderFooter() != null) { CTHeaderFooter headerFooter = worksheet.getHeaderFooter(); if (headerFooter.getOddHeader() != null) { headerFooter.setOddHeader(insertBandDataToString(headerFooter.getOddHeader())); } if (headerFooter.getOddFooter() != null) { headerFooter.setOddFooter(insertBandDataToString(headerFooter.getOddFooter())); } } } }
protected void copyRowSettings(Row templateRow, Row newRow, Worksheet templateWorksheet, Worksheet resultWorksheet) { newRow.setHt(templateRow.getHt()); newRow.setCustomHeight(true); CTPageBreak rowBreaks = templateWorksheet.getRowBreaks(); if (rowBreaks != null && rowBreaks.getBrk() != null) { CTPageBreak resultWorksheetRowBreaks = resultWorksheet.getRowBreaks(); for (CTBreak templateBreak : rowBreaks.getBrk()) { if (templateRow.getR().equals(templateBreak.getId())) { CTBreak newBreak = XmlUtils.deepCopy(templateBreak, Context.jcSML); newBreak.setId(newRow.getR()); resultWorksheetRowBreaks.getBrk().add(newBreak); } } long rowBreaksCount = resultWorksheetRowBreaks.getBrk().size(); resultWorksheetRowBreaks.setCount(rowBreaksCount); resultWorksheetRowBreaks.setManualBreakCount(rowBreaksCount); } newRow.setOutlineLevel(templateRow.getOutlineLevel()); }
protected void updateConditionalFormatting() { for (Document.SheetWrapper sheetWrapper : result.getWorksheets()) { Worksheet worksheet; try { worksheet = sheetWrapper.getWorksheet().getContents(); } catch (Docx4JException e) { throw new RuntimeException("Unable to get worksheet contents"); } for (CTConditionalFormatting ctConditionalFormatting : worksheet.getConditionalFormatting()) { List<String> references = new ArrayList<>(); for (String ref : ctConditionalFormatting.getSqref()) { Range formulaRange = Range.fromRange(sheetWrapper.getName(), ref); for (Range templateRange : rangeDependencies.templates()) { if (templateRange.contains(formulaRange)) { List<Range> resultRanges = new ArrayList<>(rangeDependencies.resultsForTemplate(templateRange)); for (Range resultRange : resultRanges) { Offset offset = calculateOffset(templateRange, resultRange); Range shift = formulaRange.copy().shift(offset.downOffset, offset.rightOffset); references.add(shift.toRange()); } } } } ctConditionalFormatting.getSqref().clear(); ctConditionalFormatting.getSqref().addAll(references); } } }
smlDrawing.setId(relationship.getId()); smlDrawing.setParent(worksheetPart.getContents()); worksheetPart.getContents().setDrawing(smlDrawing); } else { currentId = drawing.getContents().getEGAnchor().size();
public Col getColumnForCell(String sheetName, CellReference cellReference) { Worksheet sheet = getSheetByName(sheetName); List<Cols> colsList = sheet.getCols(); for (Cols cols : colsList) { for (Col col : cols.getCol()) { if (col.getMin() <= cellReference.getColumn() && cellReference.getColumn() <= col.getMax()) { return col; } } } return null; }
protected void updateMergeRegions() { for (Range templateRange : rangeDependencies.templates()) { Worksheet templateSheet = template.getSheetByName(templateRange.getSheet()); Worksheet resultSheet = result.getSheetByName(templateRange.getSheet()); if (templateSheet.getMergeCells() != null) { if (resultSheet.getMergeCells() == null) { CTMergeCells resultMergeCells = new CTMergeCells(); resultMergeCells.setParent(resultSheet); resultSheet.setMergeCells(resultMergeCells); } } for (Range resultRange : rangeDependencies.resultsForTemplate(templateRange)) { if (templateSheet.getMergeCells() != null && templateSheet.getMergeCells().getMergeCell() != null) { for (CTMergeCell templateMergeRegion : templateSheet.getMergeCells().getMergeCell()) { Range mergeRange = Range.fromRange(templateRange.getSheet(), templateMergeRegion.getRef()); if (templateRange.contains(mergeRange) || templateRange.isOneCellRange() && mergeRange.contains(templateRange)) { Offset offset = calculateOffset(templateRange, resultRange); Range resultMergeRange = mergeRange.copy().shift(offset.downOffset, offset.rightOffset); CTMergeCell resultMergeRegion = new CTMergeCell(); resultMergeRegion.setRef(resultMergeRange.toRange()); resultMergeRegion.setParent(resultSheet.getMergeCells()); resultSheet.getMergeCells().getMergeCell().add(resultMergeRegion); } } } } } }
protected void updateHeaderAndFooter() { for (Document.SheetWrapper sheetWrapper : result.getWorksheets()) { Worksheet worksheet = sheetWrapper.getWorksheet().getJaxbElement(); if (worksheet.getHeaderFooter() != null) { CTHeaderFooter headerFooter = worksheet.getHeaderFooter(); if (headerFooter.getOddHeader() != null) { headerFooter.setOddHeader(insertBandDataToString(headerFooter.getOddHeader())); } if (headerFooter.getOddFooter() != null) { headerFooter.setOddFooter(insertBandDataToString(headerFooter.getOddFooter())); } } } }
protected void copyRowSettings(Row templateRow, Row newRow, Worksheet templateWorksheet, Worksheet resultWorksheet) { newRow.setHt(templateRow.getHt()); newRow.setCustomHeight(true); CTPageBreak rowBreaks = templateWorksheet.getRowBreaks(); if (rowBreaks != null && rowBreaks.getBrk() != null) { CTPageBreak resultWorksheetRowBreaks = resultWorksheet.getRowBreaks(); for (CTBreak templateBreak : rowBreaks.getBrk()) { if (templateRow.getR().equals(templateBreak.getId())) { CTBreak newBreak = XmlUtils.deepCopy(templateBreak, Context.jcSML); newBreak.setId(newRow.getR()); resultWorksheetRowBreaks.getBrk().add(newBreak); } } long rowBreaksCount = resultWorksheetRowBreaks.getBrk().size(); resultWorksheetRowBreaks.setCount(rowBreaksCount); resultWorksheetRowBreaks.setManualBreakCount(rowBreaksCount); } newRow.setOutlineLevel(templateRow.getOutlineLevel()); }
protected void updateConditionalFormatting() { for (Document.SheetWrapper sheetWrapper : result.getWorksheets()) { Worksheet worksheet = sheetWrapper.getWorksheet().getJaxbElement(); for (CTConditionalFormatting ctConditionalFormatting : worksheet.getConditionalFormatting()) { List<String> references = new ArrayList<String>(); for (String ref : ctConditionalFormatting.getSqref()) { Range formulaRange = Range.fromRange(sheetWrapper.getName(), ref); for (Range templateRange : rangeDependencies.templates()) { if (templateRange.contains(formulaRange)) { List<Range> resultRanges = new ArrayList<Range>(rangeDependencies.resultsForTemplate(templateRange)); for (Range resultRange : resultRanges) { Offset offset = calculateOffset(templateRange, resultRange); Range shift = formulaRange.copy().shift(offset.downOffset, offset.rightOffset); references.add(shift.toRange()); } } } } ctConditionalFormatting.getSqref().clear(); ctConditionalFormatting.getSqref().addAll(references); } } }
smlDrawing.setId(relationship.getId()); smlDrawing.setParent(worksheetPart.getContents()); worksheetPart.getContents().setDrawing(smlDrawing); } else { currentId = drawing.getContents().getEGAnchor().size();
protected Row createNewRow(Worksheet resultSheet) { Row newRow = Context.getsmlObjectFactory().createRow(); Long currentRow = lastRowForSheet.get(resultSheet); currentRow = currentRow != null ? currentRow : 0; currentRow++; newRow.setR(currentRow); lastRowForSheet.put(resultSheet, currentRow); resultSheet.getSheetData().getRow().add(newRow); newRow.setParent(resultSheet.getSheetData()); return newRow; }
public void clearWorkbook() { for (SheetWrapper sheet : worksheets) { getWorksheetContents(sheet).getSheetData().getRow().clear(); CTMergeCells mergeCells = getWorksheetContents(sheet).getMergeCells(); if (mergeCells != null && mergeCells.getMergeCell() != null) { mergeCells.getMergeCell().clear(); } try { CTPageBreak rowBreaks = sheet.worksheet.getContents().getRowBreaks(); if (rowBreaks != null && rowBreaks.getBrk() != null) { rowBreaks.getBrk().clear(); } } catch (Docx4JException e) { throw new ReportFormattingException("An error occurred while clearing docx4j workbook", e); } } workbook.getDefinedNames().getDefinedName().clear(); }
resultColumn.setOutlineLevel(templateColumn.getOutlineLevel()); resultWorksheet.getCols().get(0).getCol().add(resultColumn);
protected void updateOutlines() { for (Document.SheetWrapper sheetWrapper : result.getWorksheets()) { Worksheet resultWorksheet; try { resultWorksheet = sheetWrapper.getWorksheet().getContents(); } catch (Docx4JException e) { throw new RuntimeException("Unable to get worksheet contents"); } Worksheet templateWorksheet = template.getSheetByName(sheetWrapper.getName()); if (templateWorksheet.getSheetFormatPr() != null) { resultWorksheet.setSheetFormatPr(XmlUtils.deepCopy(templateWorksheet.getSheetFormatPr(), Context.jcSML)); } } }