Documentation

Coordinate
in package

セル座標操作のためのヘルパークラス

列のインデックスと行は、常に0ではなく1を基準にしています。これはExcelユーザーが慣れ親しんでいる挙動であり、 Excelの関数であるCOLUMN()ROW()とも同様です

Table of Contents

A1_COORDINATE_REGEX  = '/^(?<absolute_col>\\$?)(?<col_ref>[A-Z]{1,3})(?<absolute_row>\\$?)(?<row_ref>\\d{1,7})$/i'
DEFAULT_RANGE  = 'A1:A1'
範囲変数のデフォルト.
absoluteCoordinate()  : string
文字列の座標を絶対参照にします
absoluteReference()  : string
文字列の行、列、セル座標を絶対参照にします
buildRange()  : string
座標文字列の配列から範囲文字列を構築します.
columnIndexFromString()  : int
文字列から列インデックスを得ます
coordinateFromString()  : mixed
文字列から座標を得ます
coordinateIsRange()  : bool
引数のセルのアドレスがセルの範囲を表しているかどうかを確認します。
extractAllCellReferencesInRange()  : array<string|int, mixed>
範囲内のすべてのセル参照を抽出します。このセル参照は複数のセル範囲で構成できます。
getRangeBoundaries()  : array<string|int, mixed>
範囲文字列から範囲境界を計算します.
indexesFromString()  : array<string|int, mixed>
文字列の座標から対応するインデックスを得ます。
mergeRangesInCollection()  : array<string|int, mixed>
単一のセルの座標をキーとする連想配列を、セル範囲をキーとした連想配列に変換します。 同じ値を持つ隣接するセル座標のみが結合されます。 値がオブジェクトの場合、getHashCode()メソッドを持っている必要があります。
rangeBoundaries()  : array<string|int, mixed>
範囲文字列から範囲境界を計算します
rangeDimension()  : array<string|int, mixed>
セル範囲の幅と高さを計算します。
splitRange()  : array<string|int, mixed>
範囲文字列を座標文字列に分割します
stringFromColumnIndex()  : string
列インデックスから文字列を得ます
getCellBlocksFromRangeString()  : array<string|int, array<string|int, mixed>>
Get the individual cell blocks from a range string, removing any $ characters.
getReferencesForCellBlock()  : array<string|int, mixed>
Get all cell references for an individual cell block.
processRangeSetOperators()  : array<string|int, mixed>
sortCellReferenceArray()  : array<string|int, mixed>
validateRange()  : void
Check that the given range is valid, i.e. that the start column and row are not greater than the end column and row.

Constants

A1_COORDINATE_REGEX

public mixed A1_COORDINATE_REGEX = '/^(?<absolute_col>\\$?)(?<col_ref>[A-Z]{1,3})(?<absolute_row>\\$?)(?<row_ref>\\d{1,7})$/i'

DEFAULT_RANGE

範囲変数のデフォルト.

public string DEFAULT_RANGE = 'A1:A1'

Methods

absoluteCoordinate()

文字列の座標を絶対参照にします

public static absoluteCoordinate(string $cellAddress) : string
Parameters
$cellAddress : string

e.g. 'A1'

Return values
string

絶対参照の座標 e.g. '$A$1'

absoluteReference()

文字列の行、列、セル座標を絶対参照にします

public static absoluteReference(string $cellAddress) : string
Parameters
$cellAddress : string

e.g. 'A' or '1' or 'A1' この引数はセル参照だけでなく、行や列の参照も可能であることに注意してください

Return values
string

絶対座標 e.g. '$A' or '$1' or '$A$1'

buildRange()

座標文字列の配列から範囲文字列を構築します.

public static buildRange(array<string|int, mixed> $range) : string
Parameters
$range : array<string|int, mixed>

1つか2つの座標文字列を含む配列、を1つ以上含む配列 e.g. [['A1']] or [['A1','A2']] or [['A1','A2'],['C1','C2']]

Return values
string

範囲を表す文字列 e.g. 'A1' or 'A1:A2' or 'A1:A2,C1:C2'

columnIndexFromString()

文字列から列インデックスを得ます

public static columnIndexFromString(string $columnAddress) : int
Parameters
$columnAddress : string

eg 'A'

Return values
int

列インデックス (A = 1)

coordinateFromString()

文字列から座標を得ます

public static coordinateFromString(string $cellAddress) : mixed
Parameters
$cellAddress : string

eg: 'A1'

Return values
mixed

coordinateIsRange()

引数のセルのアドレスがセルの範囲を表しているかどうかを確認します。

public static coordinateIsRange(string $cellAddress) : bool
Parameters
$cellAddress : string

eg: 'A1' or 'A1:A2' or 'A1:A2,C1:C2'

Return values
bool

座標がセルの範囲を表しているかどうか。 eg: false or true or true

extractAllCellReferencesInRange()

範囲内のすべてのセル参照を抽出します。このセル参照は複数のセル範囲で構成できます。

public static extractAllCellReferencesInRange(string $cellRange) : array<string|int, mixed>
Parameters
$cellRange : string

Range: e.g. 'A1' or 'A1:C10' or 'A1:E10,A20:E25' or 'A1:E5 C3:G7' or 'A1:C1,A3:C3 B1:C3'

Return values
array<string|int, mixed>

単一のセル参照を含む配列 e.g. ['A1'] or ["A1","A2","A3",...,"A10","B1","B2",...,"B10","C1","C2",...,"C10"] or ["A1","A2","A3",...,"A10","A20","A21",...,"A25","B1",...,"B10","B20",...,"B25","C1",...,"D1",..."E1",...,"E10","E20",...,"E25"] or ["C3","C4","C5","D3","D4","D5","E3","E4","E5"] or ["A1","B1","B3","C1","C3"]

getRangeBoundaries()

範囲文字列から範囲境界を計算します.

public static getRangeBoundaries(string $range) : array<string|int, mixed>
Parameters
$range : string

セル範囲文字列 (e.g. A1:A1 or A1:A2)

Return values
array<string|int, mixed>

範囲座標 [開始セル, 終了セル] この、開始セルと終了セルは[列ID、行番号]です。 e.g. [["A", "1"],["A", "1"]] or [["A","1"],["A","2"]]

indexesFromString()

文字列の座標から対応するインデックスを得ます。

public static indexesFromString(string $coordinates) : array<string|int, mixed>
Parameters
$coordinates : string

eg: 'A1', '$B$12'

Return values
array<string|int, mixed>

mergeRangesInCollection()

単一のセルの座標をキーとする連想配列を、セル範囲をキーとした連想配列に変換します。 同じ値を持つ隣接するセル座標のみが結合されます。 値がオブジェクトの場合、getHashCode()メソッドを持っている必要があります。

public static mergeRangesInCollection(array<string|int, mixed> $coordinateCollection) : array<string|int, mixed>

For example, このメソッドは:

[ 'A1' => 'x', 'A2' => 'x', 'A3' => 'x', 'A4' => 'y' ]

を:

[ 'A1:A3' => 'x', 'A4' => 'y' ]

に変換します。

Parameters
$coordinateCollection : array<string|int, mixed>

座標をキーとする連想配列

Return values
array<string|int, mixed>

範囲をキーとする連想配列

rangeBoundaries()

範囲文字列から範囲境界を計算します

public static rangeBoundaries(string $range) : array<string|int, mixed>
Parameters
$range : string

セル範囲文字列 (e.g. A1:A1 or A1:A2)

Return values
array<string|int, mixed>

範囲座標 [開始セル, 終了セル] この、開始セルと終了セルは[列番号、行番号]です。 e.g. [[1, "1"],[1, "1"]] or [[1,"1"],[1,"2"]]

rangeDimension()

セル範囲の幅と高さを計算します。

public static rangeDimension(string $range) : array<string|int, mixed>
Parameters
$range : string

セル範囲 (e.g. A1:A2)

Return values
array<string|int, mixed>

範囲の大きさ [幅, 高さ] (e.g. [1, 2])

splitRange()

範囲文字列を座標文字列に分割します

public static splitRange(string $range) : array<string|int, mixed>
Parameters
$range : string

e.g. 'B4:D9' or 'B4:D9,H2:O11' or 'B4'

Return values
array<string|int, mixed>

返り値の配列には、1つか2つの座標文字列を含む配列、が1つ以上含まれます e.g. ['B4','D9'] or [['B4','D9'], ['H2','O11']] or ['B4']

stringFromColumnIndex()

列インデックスから文字列を得ます

public static stringFromColumnIndex(int $columnIndex) : string
Parameters
$columnIndex : int

列インデックス e.g. 1 or 2

Return values
string

e.g. 'A' or 'B'

getCellBlocksFromRangeString()

Get the individual cell blocks from a range string, removing any $ characters.

private static getCellBlocksFromRangeString(string $rangeString) : array<string|int, array<string|int, mixed>>

then splitting by operators and returning an array with ranges and operators.

Parameters
$rangeString : string
Return values
array<string|int, array<string|int, mixed>>

getReferencesForCellBlock()

Get all cell references for an individual cell block.

private static getReferencesForCellBlock(string $cellBlock) : array<string|int, mixed>
Parameters
$cellBlock : string

A cell range e.g. A4:B5

Return values
array<string|int, mixed>

All individual cells in that range

processRangeSetOperators()

private static processRangeSetOperators(array<string|int, mixed> $operators, array<string|int, mixed> $cells) : array<string|int, mixed>
Parameters
$operators : array<string|int, mixed>
$cells : array<string|int, mixed>
Return values
array<string|int, mixed>

sortCellReferenceArray()

private static sortCellReferenceArray(array<string|int, mixed> $cellList) : array<string|int, mixed>
Parameters
$cellList : array<string|int, mixed>
Return values
array<string|int, mixed>

validateRange()

Check that the given range is valid, i.e. that the start column and row are not greater than the end column and row.

private static validateRange(string $cellBlock, int $startColumnIndex, int $endColumnIndex, int $currentRow, int $endRow) : void
Parameters
$cellBlock : string

The original range, for displaying a meaningful error message

$startColumnIndex : int
$endColumnIndex : int
$currentRow : int
$endRow : int
Return values
void

Search results