List of usage examples for org.apache.poi.ss.util CellRangeAddress CellRangeAddress
public CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol)
From source file:com.plugin.excel.util.ExcelUtil.java
License:Apache License
/** * @param srcSheet/* w w w .j av a 2s . c om*/ * the sheet to copy. * @param destSheet * the sheet to create. * @param srcRow * the row to copy. * @param destRow * the row to create. * @param styleMap * - */ public static void copyRow(SXSSFSheet srcSheet, SXSSFSheet destSheet, Row srcRow, Row destRow, Map<Integer, CellStyle> styleMap) { // manage a list of merged zone in order to not insert two times a // merged zone Set<CellRangeAddressWrapper> mergedRegions = new TreeSet<CellRangeAddressWrapper>(); destRow.setHeight(srcRow.getHeight()); // pour chaque row for (int j = srcRow.getFirstCellNum(); j <= srcRow.getLastCellNum(); j++) { Cell oldCell = srcRow.getCell(j); // ancienne cell Cell newCell = destRow.getCell(j); // new cell if (oldCell != null) { if (newCell == null) { newCell = destRow.createCell(j); } // copy chaque cell copyCell(oldCell, newCell, styleMap); CellRangeAddress mergedRegion = getMergedRegion(srcSheet, srcRow.getRowNum(), (short) oldCell.getColumnIndex()); if (mergedRegion != null) { // System.out.println("Selected merged region: " + // mergedRegion.toString()); CellRangeAddress newMergedRegion = new CellRangeAddress(mergedRegion.getFirstRow(), mergedRegion.getLastRow(), mergedRegion.getFirstColumn(), mergedRegion.getLastColumn()); // System.out.println("New merged region: " + // newMergedRegion.toString()); CellRangeAddressWrapper wrapper = new CellRangeAddressWrapper(newMergedRegion); if (isNewMergedRegion(wrapper, mergedRegions)) { mergedRegions.add(wrapper); destSheet.addMergedRegion(wrapper.range); } } } } }
From source file:com.qcadoo.mes.assignmentToShift.print.xls.AssignmentToShiftXlsService.java
License:Open Source License
private int fillColumnWithStaffForWorkOnLine(final HSSFSheet sheet, int rowNum, final Entity assignmentToShiftReport, final List<DateTime> days, final List<Entity> productionLines, final Entity dictionaryItem) { if ((assignmentToShiftReport != null) && (days != null) && (productionLines != null)) { for (Entity productionLine : productionLines) { int rowNumFromLastSection = rowNum; int numberOfColumnsForWorkers = getNumberOfRowsForWorkers(assignmentToShiftReport, days, productionLine, dictionaryItem); for (int i = 0; i < numberOfColumnsForWorkers; i++) { HSSFRow row = sheet.createRow(rowNum); rowNum++;//from w ww.j a v a2 s.co m } String productionLineValue = null; if (productionLine.getStringField(PLACE) == null) { productionLineValue = productionLine.getStringField(NUMBER); } else { productionLineValue = productionLine.getStringField(NUMBER) + "-" + productionLine.getStringField(ProductionLineFields.PLACE); } HSSFRow firstRowInSection = null; if (sheet.getRow(rowNumFromLastSection) == null) { firstRowInSection = sheet.createRow(rowNumFromLastSection); rowNum++; } else { firstRowInSection = sheet.getRow(rowNumFromLastSection); } HSSFCell cell = firstRowInSection.createCell(0); cell.setCellValue(productionLineValue); sheet.addMergedRegion(new CellRangeAddress(rowNumFromLastSection, rowNum - 1, 0, 0)); int columnNumber = 1; int maxLength = 0; for (DateTime day : days) { Entity assignmentToShift = assignmentToShiftXlsHelper .getAssignmentToShift(assignmentToShiftReport.getBelongsToField(SHIFT), day.toDate()); if (assignmentToShift == null) { columnNumber += 3; continue; } List<Entity> staffs = assignmentToShiftXlsHelper.getStaffsList(assignmentToShift, dictionaryItem.getStringField(NAME), productionLine); if (staffs.isEmpty()) { columnNumber += 3; continue; } String staffsValue = assignmentToShiftXlsHelper.getListOfWorkers(staffs); List<String> workers = assignmentToShiftXlsHelper.getListOfWorker(staffs); int rowIndex = rowNumFromLastSection; for (String worker : workers) { sheet.getRow(rowIndex).createCell(columnNumber).setCellValue(worker); rowIndex++; } if (workers.isEmpty()) { sheet.getRow(rowIndex).createCell(columnNumber).setCellValue(" "); } if (maxLength < staffsValue.length()) { maxLength = staffsValue.length(); } // row.setHeightInPoints(assignmentToShiftXlsStyleHelper.getHeightForRow(maxLength, 22, 14)); columnNumber += 3; } for (int i = rowNumFromLastSection; i < rowNum; i++) { assignmentToShiftXlsStyleHelper.addMarginsAndStylesForSeries(sheet, i, assignmentToShiftXlsHelper.getNumberOfDaysBetweenGivenDates(assignmentToShiftReport)); } } } return rowNum; }
From source file:com.qcadoo.mes.assignmentToShift.print.xls.AssignmentToShiftXlsService.java
License:Open Source License
private int fillColumnWithStaffForOtherTypes(final HSSFSheet sheet, int rowNum, final Entity assignmentToShiftReport, final List<DateTime> days, final Entity occupationType) { if ((assignmentToShiftReport != null) && (days != null) && (occupationType != null)) { int rowNumFromLastSection = rowNum; int numberOfColumnsForWorkers = getNumberOfRowsForWorkersForOtherTypes(assignmentToShiftReport, days, occupationType);// w w w .j av a 2s . c o m for (int i = 0; i < numberOfColumnsForWorkers; i++) { HSSFRow row = sheet.createRow(rowNum); rowNum++; } String occupationTypeValue = occupationType.getStringField(NAME); HSSFRow firstRowInSection = null; if (sheet.getRow(rowNumFromLastSection) == null) { firstRowInSection = sheet.createRow(rowNumFromLastSection); rowNum++; } else { firstRowInSection = sheet.getRow(rowNumFromLastSection); } HSSFCell cell = firstRowInSection.createCell(0); cell.setCellValue(occupationTypeValue); sheet.addMergedRegion(new CellRangeAddress(rowNumFromLastSection, rowNum - 1, 0, 0)); int columnNumber = 1; int maxLength = 0; for (DateTime day : days) { Entity assignmentToShift = assignmentToShiftXlsHelper .getAssignmentToShift(assignmentToShiftReport.getBelongsToField(SHIFT), day.toDate()); if (assignmentToShift == null) { columnNumber += 3; continue; } List<Entity> staffs = assignmentToShiftXlsHelper.getStaffsList(assignmentToShift, occupationType.getStringField(NAME), null); List<String> workers = Lists.newArrayList(); if (OccupationType.OTHER_CASE.getStringValue() .equals(occupationType.getStringField(TECHNICAL_CODE))) { workers = assignmentToShiftXlsHelper.getListOfWorkerWithOtherCases(staffs); } else { workers = assignmentToShiftXlsHelper.getListOfWorker(staffs); } int rowIndex = rowNumFromLastSection; for (String worker : workers) { sheet.getRow(rowIndex).createCell(columnNumber).setCellValue(worker); rowIndex++; } if (workers.isEmpty()) { sheet.getRow(rowIndex).createCell(columnNumber).setCellValue(" "); } columnNumber += 3; } for (int i = rowNumFromLastSection; i < rowNum; i++) { assignmentToShiftXlsStyleHelper.addMarginsAndStylesForSeries(sheet, i, assignmentToShiftXlsHelper.getNumberOfDaysBetweenGivenDates(assignmentToShiftReport)); } } return rowNum; }
From source file:com.qcadoo.mes.assignmentToShift.print.xls.AssignmentToShiftXlsStyleHelper.java
License:Open Source License
public void addMarginsAndStylesForAuthor(final HSSFSheet sheet, final int rowNumber, final int numberOfDays) { int firstColumnNumber = 0; int lastColumnNumber; int margin = 3; if (numberOfDays < 3) { lastColumnNumber = 10;//from w ww . j a va2 s. c o m } else { lastColumnNumber = (numberOfDays + 1) * margin; } for (int columnNumber = firstColumnNumber; columnNumber <= lastColumnNumber; columnNumber++) { if (sheet.getRow(rowNumber).getCell(columnNumber) == null) { sheet.getRow(rowNumber).createCell(columnNumber); } if (columnNumber == firstColumnNumber) { setGreyDataStyleBorderLeftAlignLeftBold(sheet, sheet.getRow(rowNumber).getCell(columnNumber)); } else if (columnNumber == lastColumnNumber) { setGreyDataStyleBorderRightAlignLeftBold(sheet, sheet.getRow(rowNumber).getCell(columnNumber)); } else { setGreyDataStyleAlignLeftBold(sheet, sheet.getRow(rowNumber).getCell(columnNumber)); } } sheet.addMergedRegion( new CellRangeAddress(rowNumber, rowNumber, firstColumnNumber, firstColumnNumber + margin - 1)); sheet.addMergedRegion(new CellRangeAddress(rowNumber, rowNumber, firstColumnNumber + margin, firstColumnNumber + (margin * 2) - 1)); sheet.addMergedRegion( new CellRangeAddress(rowNumber, rowNumber, firstColumnNumber + (margin * 2), lastColumnNumber)); }
From source file:com.qcadoo.mes.assignmentToShift.print.xls.AssignmentToShiftXlsStyleHelper.java
License:Open Source License
public void addMarginsAndStylesForAssignmentToShift(final HSSFSheet sheet, final int rowNumber, final int numberOfDays) { int margin = 3; int firstColumn = 0; int lastColumn = (numberOfDays + 1) * margin; for (int columnNumber = firstColumn; columnNumber <= lastColumn; columnNumber++) { if (sheet.getRow(rowNumber).getCell(columnNumber) == null) { sheet.getRow(rowNumber).createCell(columnNumber); }//from ww w.j av a2 s . c om setWhiteDataStyleBorderBoxAlignCenterBold(sheet, sheet.getRow(rowNumber).getCell(columnNumber)); } for (int columnNumber = 1; columnNumber <= lastColumn; columnNumber += margin) { sheet.addMergedRegion(new CellRangeAddress(rowNumber, rowNumber, columnNumber, columnNumber + 2)); } }
From source file:com.qcadoo.mes.assignmentToShift.print.xls.AssignmentToShiftXlsStyleHelper.java
License:Open Source License
public void addMarginsAndStylesForSeries(final HSSFSheet sheet, final int rowNumber, final int numberOfDays) { int margin = 3; int firstColumn = 0; int lastColumn = (numberOfDays + 1) * margin; for (int columnNumber = firstColumn; columnNumber <= lastColumn; columnNumber++) { if (sheet.getRow(rowNumber).getCell(columnNumber) == null) { sheet.getRow(rowNumber).createCell(columnNumber); }/* www.j av a 2 s . com*/ if (columnNumber == firstColumn) { setWhiteDataStyleBorderBoxAlignCenterBold(sheet, sheet.getRow(rowNumber).getCell(columnNumber)); } else { setWhiteDataStyleBorderBoxAlignLeft(sheet, sheet.getRow(rowNumber).getCell(columnNumber)); } } for (int columnNumber = 1; columnNumber <= lastColumn; columnNumber += margin) { sheet.addMergedRegion(new CellRangeAddress(rowNumber, rowNumber, columnNumber, columnNumber + 2)); } }
From source file:com.qihang.winter.poi.excel.export.base.ExcelExportBase.java
License:Apache License
/** * ? Cells/*w w w . jav a 2 s . co m*/ * * @param styles * @param rowHeight * @throws Exception */ public int createCells(Drawing patriarch, int index, Object t, List<com.qihang.winter.poi.excel.entity.params.ExcelExportEntity> excelParams, Sheet sheet, Workbook workbook, short rowHeight) throws Exception { com.qihang.winter.poi.excel.entity.params.ExcelExportEntity entity; Row row = sheet.createRow(index); row.setHeight(rowHeight); int maxHeight = 1, cellNum = 0; int indexKey = createIndexCell(row, index, excelParams.get(0)); cellNum += indexKey; for (int k = indexKey, paramSize = excelParams.size(); k < paramSize; k++) { entity = excelParams.get(k); if (entity.getList() != null) { Collection<?> list = getListCellValue(entity, t); int listC = 0; for (Object obj : list) { createListCells(patriarch, index + listC, cellNum, obj, entity.getList(), sheet, workbook); listC++; } cellNum += entity.getList().size(); if (list != null && list.size() > maxHeight) { maxHeight = list.size(); } } else { Object value = getCellValue(entity, t); if (entity.getType() == 1) { createStringCell(row, cellNum++, value == null ? "" : value.toString(), index % 2 == 0 ? getStyles(false, entity) : getStyles(true, entity), entity); } else { createImageCell(patriarch, entity, row, cellNum++, value == null ? "" : value.toString(), t); } } } // ???? cellNum = 0; for (int k = indexKey, paramSize = excelParams.size(); k < paramSize; k++) { entity = excelParams.get(k); if (entity.getList() != null) { cellNum += entity.getList().size(); } else if (entity.isNeedMerge()) { for (int i = index + 1; i < index + maxHeight; i++) { sheet.getRow(i).createCell(cellNum); sheet.getRow(i).getCell(cellNum).setCellStyle(getStyles(false, entity)); } sheet.addMergedRegion(new CellRangeAddress(index, index + maxHeight - 1, cellNum, cellNum)); cellNum++; } } return maxHeight; }
From source file:com.qpark.eip.core.poi.impl.AbstractSheetProvider.java
License:Open Source License
/** * Get the merging {@link CellRangeAddress} for a or a list of * {@link Section}s.//from w ww . ja v a 2 s. co m * * @param row * the row number the {@link CellRangeAddress} is merging. * @param start * the starting column. * @param sections * the {@link Section} or list of {@link Section}s. * @return the {@link CellRangeAddress}. */ public static CellRangeAddress getMergedHeader(final int row, final int start, final Section<?>... sections) { AtomicInteger stop = new AtomicInteger(start); if (Objects.nonNull(sections)) { Arrays.asList(sections).stream().filter(s -> Objects.nonNull(s)) .forEach(s -> stop.set(stop.get() + s.size())); } CellRangeAddress value = new CellRangeAddress(row, row, start, stop.get() - 1); return value; }
From source file:com.qpark.eip.core.poi.impl.AbstractSheetProvider.java
License:Open Source License
/** * @see com.qpark.eip.core.poi.Sheet#finish() *//*from www . j a va 2s . co m*/ @Override public void finish() { AtomicInteger ai = new AtomicInteger(0); this.getColumnDefinition().stream().forEach(cd -> { if (cd.isAutoSize()) { this.sheet.autoSizeColumn(ai.get()); } ai.incrementAndGet(); }); this.sheet.createFreezePane(this.getFreezedColumns(), this.superHeaderRowSize + 1, this.getFreezedColumns() + 1, this.superHeaderRowSize + 1); if (Objects.nonNull(this.sheet.getRow(this.superHeaderRowSize))) { this.sheet.setAutoFilter(new CellRangeAddress(this.superHeaderRowSize, this.sheet.getRow(this.sheet.getLastRowNum()).getRowNum(), 0, this.sheet.getRow(this.superHeaderRowSize).getLastCellNum() - 1)); } }
From source file:com.sccl.attech.common.utils.excel.ExportExcel.java
License:Open Source License
/** * ??? */ public void createAddMergedRegion() { sheet.addMergedRegion(new CellRangeAddress(1, 23, 6, 11)); }