[]
        
(Showing Draft Content)

セル範囲

Spread.Sheetsでは、指定したシート領域内のセル範囲を取得できます。シート内のセル範囲を取得するには、getRangeメソッドを使用します。

また、要件に応じて、行/列インデックスまたは範囲アドレスを使用して、シート領域内のセル範囲を取得できます。これらの方法については、以下で解説しています。

行/列インデックスによるセル範囲の取得

getRange(row, col, rowCount, colCount, sheetArea) メソッドを使用して、指定したシート領域内のセル範囲を取得できます。このメソッドは、行インデックス、列インデックス、範囲の行数、範囲の列数をパラメータとして受け取ります。これにより、行/列インデックスによって指定したシート領域内のセル範囲を取得できます。

次の図は、行/列のインデックスを使用してセル範囲を取得する例を示します。

Get Range by row and column info

次のサンプルコードは、 getRange メソッドを使用して、行/列のインデックスでB2:F6のセル範囲を指定する方法を示します。

<script>
    $(document).ready(function () {
        // Spreadを初期化します。
        var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 });
        // アクティブシートを取得します。
        var sheet = spread.getActiveSheet();

        // 行と列の情報でセル範囲を取得します。
        var range = sheet.getRange(1, 1, 5, 5, GC.Spread.Sheets.SheetArea.viewport);
        range.text("テキスト");
    });
</script>

範囲アドレスによるセル範囲の取得

getRange(address, sheetArea) メソッドを使用して、指定したシート領域内のセル範囲を取得できます。このメソッドは、範囲アドレスの文字列を使用して、指定したシート領域のセル範囲を取得します。

次の図は、範囲アドレスを使用してセル範囲を取得する例を示します。

Get Range by range address

次のサンプルコードは、 getRange メソッドを使用して、範囲アドレスでA1:E5のセル範囲を指定する方法を示します。

<script>
    $(document).ready(function () {
        // Spreadを初期化します。
        var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 });
        // アクティブシートを取得します。
        var sheet = spread.getActiveSheet();

        // 範囲アドレスでセル範囲を取得します。
        var range = sheet.getRange('A1:E5', GC.Spread.Sheets.SheetArea.viewport);
        range.text("テキスト");
    });
</script>

データのタイプによるセル範囲の取得

getUsedRangeメソッドを使用して、ワークシート内にデータのタイプに基づいてセル範囲を取得できます。UsedRangeType列挙型をパラメータとして使用して、データのタイプの最大範囲をすばやく取得します。

これにより、スパークライン、チャート、スライサー、タグなど、さまざまな形式のデータを操作するときに、ワークシート全体でさまざまなデータ範囲をすばやく取得できるようになります。

次のコードは、セルタグが適用されたセル範囲を取得する方法を示しています。

function getRangeStyle() {
    var sheet = spread.getSheet(0);
    var styleRange = sheet.getUsedRange(GC.Spread.Sheets.UsedRangeType.style);
    //  styleRange:{row: 2, col: 2, rowCount: 3, colCount: 3}

    sheet.setSelection(styleRange.row, styleRange.col, styleRange.rowCount, styleRange.colCount, GC.Spread.Sheets.SheetArea.viewport, GC.Spread.Sheets.StorageType.style);
}

function getRangeTag() {
 var sheet = spread.getSheet(0);
 sheet.setTag(2, 2, "value");
 sheet.setTag(4, 2, new Date());
 sheet.setTag(6, 8, { Product: 'SpreadJS', Price: 99999 });

 var usedRangeTag = sheet.getUsedRange(GC.Spread.Sheets.UsedRangeType.tag);
 console.log(usedRangeTag); // usedRangeTag:{row: 2, rowCount: 5, col: 2, colCount: 7}
}