/* package */ boolean isCellInArrayFormulaContext(XSSFCell cell) { for (CellRangeAddress range : arrayFormulas) { if (range.isInRange(cell.getRowIndex(), cell.getColumnIndex())) { return true; } } return false; }
@Override public CellRange<XSSFCell> removeArrayFormula(Cell cell) { if (cell.getSheet() != this) { throw new IllegalArgumentException("Specified cell does not belong to this sheet."); } for (CellRangeAddress range : arrayFormulas) { if (range.isInRange(cell)) { arrayFormulas.remove(range); CellRange<XSSFCell> cr = getCellRange(range); for (XSSFCell c : cr) { c.setCellType(CellType.BLANK); } return cr; } } String ref = ((XSSFCell)cell).getCTCell().getR(); throw new IllegalArgumentException("Cell " + ref + " is not part of an array formula."); }
if (mergedRegion.isInRange(rowIx, colIx)) {
if (r.isInRange(ref)) { region = r; break;
/* package */ XSSFCell getFirstCellInArrayFormula(XSSFCell cell) { for (CellRangeAddress range : arrayFormulas) { if (range.isInRange(cell.getRowIndex(), cell.getColumnIndex())) { return getRow(range.getFirstRow()).getCell(range.getFirstColumn()); } } return null; }
if (region.isInRange(row.getRowNum(), column)) { if (!useMergedCells) {
public boolean isMergedCell(int row, int column) { for (CellRangeAddress range : sheet.getMergedRegions()) { if (range.isInRange(row, column)) { return true; } } return false; }
for (int i = 0; i < sheet.getNumMergedRegions(); i++) { CellRangeAddress merged = sheet.getMergedRegion(i); if (merged.isInRange(rowNum, cellNum)) { return merged;
/* package */ boolean isCellInArrayFormulaContext(XSSFCell cell) { for (CellRangeAddress range : arrayFormulas) { if (range.isInRange(cell.getRowIndex(), cell.getColumnIndex())) { return true; } } return false; }
/* package */ boolean isCellInArrayFormulaContext(XSSFCell cell) { for (CellRangeAddress range : arrayFormulas) { if (range.isInRange(cell.getRowIndex(), cell.getColumnIndex())) { return true; } } return false; }
CellRangeAddress getRangeIfMerged(Cell cell, CellRangeAddress[] mergedRanges) { for ( int i = 0; i < mergedRanges.length; i++ ) { CellRangeAddress r = mergedRanges[i]; if (r.isInRange(cell.getRowIndex(), cell.getColumnIndex())) { return r; } } return null; }
private int calculateColumnOffset(final Sheet sheet, final int row, int col) { for (int j = 0; j < sheet.getNumMergedRegions(); j++) { final CellRangeAddress merged = sheet.getMergedRegion(j); if (merged.isInRange(row, col)) { col = merged.getLastColumn() + 1; } } return col; }
public CellRangeAddress getMergedRegionForCell(Cell c) { Sheet s = c.getRow().getSheet(); for (CellRangeAddress mergedRegion : s.getMergedRegions()) { if (mergedRegion.isInRange(c.getRowIndex(), c.getColumnIndex())) { // This region contains the cell in question return mergedRegion; } } // Not in any return null; }
/* package */ XSSFCell getFirstCellInArrayFormula(XSSFCell cell) { for (CellRangeAddress range : arrayFormulas) { if (range.isInRange(cell.getRowIndex(), cell.getColumnIndex())) { return getRow(range.getFirstRow()).getCell(range.getFirstColumn()); } } return null; }
/* package */ XSSFCell getFirstCellInArrayFormula(XSSFCell cell) { for (CellRangeAddress range : arrayFormulas) { if (range.isInRange(cell.getRowIndex(), cell.getColumnIndex())) { return getRow(range.getFirstRow()).getCell(range.getFirstColumn()); } } return null; }
private void fixUpBorder(HSSFCellStyle cellStyle, HSSFSheet sheet, int columnIndex, int rowIndex, HSSFCell resultCell) { if (rowIndex > 0) { // fix simple up border fixUpCell(sheet, rowIndex - 1, columnIndex, cellStyle); // fix merged up border for (int i = 0; i < sheet.getNumMergedRegions(); i++) { CellRangeAddress mergedRegion = sheet.getMergedRegion(i); if (mergedRegion.isInRange(resultCell.getRowIndex(), resultCell.getColumnIndex())) { int firstColumn = mergedRegion.getFirstColumn(); int lastColumn = mergedRegion.getLastColumn(); for (int upIndex = firstColumn; upIndex <= lastColumn; upIndex++) { fixUpCell(sheet, rowIndex - 1, upIndex, cellStyle); } break; } } } }
private void fixLeftBorder(HSSFCellStyle cellStyle, HSSFSheet sheet, int columnIndex, HSSFCell resultCell) { if (columnIndex > 1) { fixLeftCell(sheet, resultCell.getRowIndex(), columnIndex - 1, cellStyle); // fix merged left border for (int i = 0; i < sheet.getNumMergedRegions(); i++) { CellRangeAddress mergedRegion = sheet.getMergedRegion(i); if (mergedRegion.isInRange(resultCell.getRowIndex(), resultCell.getColumnIndex())) { int firstRow = mergedRegion.getFirstRow(); int lastRow = mergedRegion.getLastRow(); for (int leftIndex = firstRow; leftIndex <= lastRow; leftIndex++) { fixLeftCell(sheet, leftIndex, columnIndex - 1, cellStyle); } break; } } } }
private void fixDownBorder(HSSFCellStyle cellStyle, HSSFSheet sheet, int columnIndex, int rowIndex, HSSFCell resultCell) { // fix simple down border fixDownCell(sheet, rowIndex + 1, columnIndex, cellStyle); // fix merged down border for (int i = 0; i < sheet.getNumMergedRegions(); i++) { CellRangeAddress mergedRegion = sheet.getMergedRegion(i); if (mergedRegion.isInRange(resultCell.getRowIndex(), resultCell.getColumnIndex())) { int firstColumn = mergedRegion.getFirstColumn(); int lastColumn = mergedRegion.getLastColumn(); int regionHeight = mergedRegion.getLastRow() - mergedRegion.getFirstRow() + 1; for (int downIndex = firstColumn; downIndex <= lastColumn; downIndex++) { fixDownCell(sheet, rowIndex + regionHeight, downIndex, cellStyle); } break; } } }
private void fixRightBorder(HSSFCellStyle cellStyle, HSSFSheet sheet, int columnIndex, HSSFCell resultCell) { fixRightCell(sheet, resultCell.getRowIndex(), columnIndex + 1, cellStyle); // fix merged right border for (int i = 0; i < sheet.getNumMergedRegions(); i++) { CellRangeAddress mergedRegion = sheet.getMergedRegion(i); if (mergedRegion.isInRange(resultCell.getRowIndex(), resultCell.getColumnIndex())) { int firstRow = mergedRegion.getFirstRow(); int lastRow = mergedRegion.getLastRow(); int regionWidth = mergedRegion.getLastColumn() - mergedRegion.getFirstColumn() + 1; for (int rightIndex = firstRow; rightIndex <= lastRow; rightIndex++) { fixRightCell(sheet, rightIndex, columnIndex + regionWidth, cellStyle); } break; } } }
private void fixRightBorder(HSSFCellStyle cellStyle, HSSFSheet sheet, int columnIndex, HSSFCell resultCell) { fixRightCell(sheet, resultCell.getRowIndex(), columnIndex + 1, cellStyle); // fix merged right border for (int i = 0; i < sheet.getNumMergedRegions(); i++) { CellRangeAddress mergedRegion = sheet.getMergedRegion(i); if (mergedRegion.isInRange(resultCell.getRowIndex(), resultCell.getColumnIndex())) { int firstRow = mergedRegion.getFirstRow(); int lastRow = mergedRegion.getLastRow(); int regionWidth = mergedRegion.getLastColumn() - mergedRegion.getFirstColumn() + 1; for (int rightIndex = firstRow; rightIndex <= lastRow; rightIndex++) { fixRightCell(sheet, rightIndex, columnIndex + regionWidth, cellStyle); } break; } } }