Esempio n. 1
0
        /**
         * Traverse cell range from top left to bottom right cell.
         * @param handler handler to call on each appropriate cell
         */
        public void Traverse(ICellHandler handler)
        {
            int firstRow              = range.FirstRow;
            int lastRow               = range.LastRow;
            int firstColumn           = range.FirstColumn;
            int lastColumn            = range.LastColumn;
            int width                 = lastColumn - firstColumn + 1;
            SimpleCellWalkContext ctx = new SimpleCellWalkContext();
            IRow  currentRow          = null;
            ICell currentCell         = null;

            for (ctx.rowNumber = firstRow; ctx.rowNumber <= lastRow; ++ctx.rowNumber)
            {
                currentRow = sheet.GetRow(ctx.rowNumber);
                if (currentRow == null)
                {
                    continue;
                }
                for (ctx.colNumber = firstColumn; ctx.colNumber <= lastColumn; ++ctx.colNumber)
                {
                    currentCell = currentRow.GetCell(ctx.colNumber);

                    if (currentCell == null)
                    {
                        continue;
                    }
                    if (IsEmpty(currentCell) && !traverseEmptyCells)
                    {
                        continue;
                    }

                    ctx.ordinalNumber =
                        (ctx.rowNumber - firstRow) * width +
                        (ctx.colNumber - firstColumn + 1);

                    handler.OnCell(currentCell, ctx);
                }
            }
        }
Esempio n. 2
0
        /**
         * Traverse cell range from top left to bottom right cell.
         * @param handler handler to call on each appropriate cell
         */
        public void Traverse(ICellHandler handler)
        {
            int firstRow = range.FirstRow;
            int lastRow = range.LastRow;
            int firstColumn = range.FirstColumn;
            int lastColumn = range.LastColumn;
            int width = lastColumn - firstColumn + 1;
            SimpleCellWalkContext ctx = new SimpleCellWalkContext();
            IRow currentRow = null;
            ICell currentCell = null;

            for (ctx.rowNumber = firstRow; ctx.rowNumber <= lastRow; ++ctx.rowNumber)
            {
                currentRow = sheet.GetRow(ctx.rowNumber);
                if (currentRow == null)
                {
                    continue;
                }
                for (ctx.colNumber = firstColumn; ctx.colNumber <= lastColumn; ++ctx.colNumber)
                {
                    currentCell = currentRow.GetCell(ctx.colNumber);

                    if (currentCell == null)
                    {
                        continue;
                    }
                    if (IsEmpty(currentCell) && !traverseEmptyCells)
                    {
                        continue;
                    }

                    ctx.ordinalNumber =
                        (ctx.rowNumber - firstRow) * width +
                        (ctx.colNumber - firstColumn + 1);

                    handler.OnCell(currentCell, ctx);
                }
            }
        }