class

Sheety::Tokens::Range

Inherits Sheety::Tokens::Operand < Sheety::Token < Reference < Object

Cell reference or range token (e.g., A1, Sheet1!B5, A1:B5)

Constants

CELL_REF_REGEX = /^\s*(?P<name>\$?[A-Z]{1,3}\$?\d+)/i

Regex for simple cell reference like A1 or $A$1

COL_RANGE_REGEX = /^\s*(?P<name>\$?[A-Z]{1,3}:\$?[A-Z]{1,3})/i

Regex for column range like A:A

FULL_RANGE_REGEX = /^\s*(?P<name>\$?[A-Z]{1,3}\$?\d+:\$?[A-Z]{1,3}\$?\d+)/i

Regex for full range like A1:B5 or $A$1:$B$5

ROW_RANGE_REGEX = /^\s*(?P<name>\$?\d+:\$?\d+)/i

Regex for row range like 1:10

SHEET_CELL_REF_REGEX = /^\s*(?P<sheet>'[^']+'|[A-Z_][A-Z0-9_.]*)!(?P<name>\$?[A-Z]{1,3}\$?\d+)/i

Regex for sheet-prefixed cell reference: Sheet1!A1, 'Sheet 1'!A1

SHEET_COL_RANGE_REGEX = /^\s*(?P<sheet>'[^']+'|[A-Z_][A-Z0-9_.]*)!(?P<name>\$?[A-Z]{1,3}:\$?[A-Z]{1,3})/i

Regex for sheet-prefixed column range: Sheet1!A:A

SHEET_FULL_RANGE_REGEX = /^\s*(?P<sheet>'[^']+'|[A-Z_][A-Z0-9_.]*)!(?P<name>\$?[A-Z]{1,3}\$?\d+:\$?[A-Z]{1,3}\$?\d+)/i

Regex for sheet-prefixed full range: Sheet1!A1:B5, 'Sheet 1'!A1:B5

SHEET_ROW_RANGE_REGEX = /^\s*(?P<sheet>'[^']+'|[A-Z_][A-Z0-9_.]*)!(?P<name>\$?\d+:\$?\d+)/i

Regex for sheet-prefixed row range: Sheet1!1:10

Class methods

match?(s : String) : Regex::MatchData | Nil
Source

Instance methods

compile

Compile the token to executable code

Source
match(s : String) : Regex::MatchData | Nil

Try to match the token pattern against the input string

Source
process(match : Regex::MatchData) : Regex::MatchData

Process the match result and populate attributes

Source
range?
Source
reference?
Source
sheet_name
Source