The range specified by a start position and an end position, the smallest range must contain at least one cell. Range is not a merged cell, but it can be merged as a single cell. Two ranges can be intersected.
In ReoGrid, there are two objects about range:
- Range Position, represented by structure
RangePosition
(calledReoGridRange
before 1.1.0) - Range Instance, represented by class
ReferenceRange
Range Position
Structure RangePosition
contains the numeric information to locate a range on worksheet. RangePosition
doesn’t associate with any worksheet, doesn’t keep data and styles. RangePosition
can be created from address string or positions and size:
- Number of row of the start position
- Number of column of the start position
- Number of rows
- Number of columns
The number of rows, number of columns is zero-based index refers to the position on the worksheet.
// or create range position from address string var range = new RangePosition("C5:H14"); // create range position at position 4, 2, contains 9 rows and 5 columns var range = new RangePosition(4, 2, 9, 5);
Property and method
Properties of RangePosition
are used to get information from a range position:
Property | Desc |
---|---|
Row | Number of row of the start position |
Col | Number of column of the start position |
Rows | Number of rows contained in this range |
Cols | Number of columns contained in this range |
EndRow | Number of row of the end position |
EndCol | Number of column of the end position |
IsEmpty | Check whether or not this range is empty |
RangePosition
contains the following methods:
range.Contains(CellPosition) // check whether or not the range contains a specified cell position range.Equals(RangePosition) // compare to another range range.Offset(int rows, int cols) // move range by n rows and n columns
Get a safe range position
Sometimes range might out of the valid range of spreadsheet, to always get a safe range by using the FixRange
method:
var fixedRange = sheet.FixRange(range); // get a fixed range
Range Instance
The range instance represents the range in a worksheet, always keeps the reference to a worksheet. When an associated worksheet is destroyed, all range instances belong to the worksheet will be invalid and should be destroyed.
Get a range instance
To get a range instance, use the Ranges
property of worksheet.
var range = worksheet.Ranges["B2:D3"];
Access range data
It is possible to set range data by using Data
property:
range.Data = new object[] { "Product", "Unit Price", "Quantity", "Extended Price" };
Result:
Access styles of range
To get or set styles from a range, use the Style
property:
range.Style.BackColor = System.Drawing.Color.LightBlue;
Access border of range
To get or set borders from a range, use the Border property:
range.Border.Outside = RangeBorderStyle.BlackSolid;
Named range
Named range is a special range instance inherited from normal range instance, learn more about Named Range.
Convert between range position and range instance
Convert a range position to range instance:
var rangeInstance = sheet.Ranges[rangePosition];
Convert a range instance to range position:
var rangePos = rangeInstance.Position;
Range instance can convert into range position implicitly:
RangePosition rangePos = rangeInstance;
For example, the following all sentences are valid.
sheet.SelectionRange = rangePosition; sheet.SelectionRange = rangeInstance;
Result:
Used Range
To get range that contains data in a worksheet, use UsedRange
peroperty.
var range = sheet.UsedRange;
Merge range
About merging range refer to Merge and Unmerge.
Hi, am using vb.net and running into trouble when trying to use ReoGridRange? Help with this.
Hi! Please post your question on forum: https://reogrid.net/forum
How can I get the column or row headers selected?