SpreadJS製品ヘルプ
セルの自動マージ
機能 > セル > セルの自動マージ

Spread.Sheetsでは、自動マージがサポートされます。これにより、重複テキストが含まれた隣接するセルを自動的にマージされるように設定できます。自動マージによってデータが失われることはありません。

自動マージのメリット

自動マージ機能は、次の場合に役に立ちます。

自動マージの処理方法

自動マージ機能は、同一のテキストを含む連続したセルを自動的にマージし、マージされたセルのテキスト位置を調整します。

本機能は、結合させるセルが指定範囲の一部でない場合に動作します。Spread.Sheetsで作業する際、範囲、行、列およびワークシート全体の指定範囲に自動マージ機能を適用するには、autoMergeメソッドを使用できます。セルを、行方向、列方向、および行と列の両方方向で結合できます。

Spread.Sheetsで自動マージを使用する際、次の2つのモードがサポートされます。

WorksheetクラスのautoMergeメソッドのSelectionModeパラメータを使用すると、自動マージしたセルの選択方法を指定できます。

SelectionModeパラメータは、sourceまたはmergedのいずれかに設定できます。次は、これらのオプションについて説明します。

使用例

ワークシートでデータを分析する際、データ表示を強化し、構造を改善するために、同一のテキストを含む複数のセルを結合することができます。

例えは、ワークシートを使用して、世界のさまざまな国のさまざまな都市や州での製品の売上高を分析しているシナリオを考えてみます。この場合、自動マージ機能を使用して値に基づいてセルを結合でき、SelectionModeプロパティを使用してセル範囲と同じ選択効果を得ることができます。

次の例は、国のさまざまな都市や州で販売されているさまざまな製品を示します。同じ値を持つセルは、SelectionModeプロパティを使用して結合されます。ここで、「国」列のSelectionModeプロパティは「Merged」に設定され、「州」列は「Source」に設定されます。

Auto merge operation in worksheet

自動マージと範囲指定したマージ

ワークシートの「セルの自動マージ」と「範囲指定したマージ」の実行の基本的な違いは次のとおりです。

注意: 自動マージ機能には、次の制限事項があります。

コードの使用

次のコードは、autoMergeメソッドを使用して、同一の国、州、都市の名前を含むセルを自動マージする方法を示します。

JavaScript
コードのコピー
<script>
    var data = [
        {
            "国": "Canada",
            "州": "Ontario",
            "市": "Ottawa",
            "製品": "Kraft Grated Parmesan Cheese"
        },
        {
            "国": "Canada",
            "州": "Ontario",
            "市": "Belleville",
            "製品": "KIND Bars Almond & Coconut Gluten Free"
        },
        {
            "国": "Canada",
            "州": "Ontario",
            "市": "Alliston",
            "製品": "Kraft Grated Parmesan Cheese"
        },
        {
            "国": "Canada",
            "州": "Saskatchewan",
            "市": "Prince Albert",
            "製品": "Smartfood Popcorn"
        },
        {
            "国": "Canada",
            "州": "Alberta",
            "市": "Red Deer",
            "製品": "Smartfood Popcorn"
        },
        {
            "国": "Canada",
            "州": "Alberta",
            "市": "Calgary",
            "製品": "Planters Deluxe Whole Cashew"
        },
        {
            "国": "Canada",
            "州": "Alberta",
            "市": "Calgary",
            "製品": "Kraft Grated Parmesan Cheese"
        },
        {
            "国": "Canada",
            "州": "Alberta",
            "市": "Okotoks",
            "製品": "Smartfood Popcorn"
        },
        {
            "国": "India",
            "州": "Andhra Pradesh",
            "市": "Hyderabad",
            "製品": "Teddy Grahams Crackers"
        },
        {
            "国": "South Africa",
            "州": "Gauteng",
            "市": "Roodepoort",
            "製品": "Jaybee's Gourmet Nuts Gift Pack (3 Lb)"
        },
        {
            "国": "Finland",
            "州": "Ita-Suomen Laani",
            "市": "Kuopio",
            "製品": "Planters Deluxe Whole Cashew"
        },
        {
            "国": "Switzerland",
            "州": "Geneve",
            "市": "Vesenaz",
            "製品": "KIND Bars Almond & Coconut Gluten Free"
        },
        {
            "国": "Switzerland",
            "州": "Vaud",
            "市": "Lausanne",
            "製品": "Smartfood Popcorn"
        },
        {
            "国": "Switzerland",
            "州": "Vaud",
            "市": "Morges",
            "製品": "Kraft Real Mayo"
        },
        {
            "国": "Denmark",
            "州": "Frederiksborg",
            "市": "Helsingor",
            "製品": "Planters Deluxe Whole Cashew"
        },
        {
            "国": "Denmark",
            "州": "Kobenhavn",
            "市": "Kobenhavn",
            "製品": "Kraft Grated Parmesan Cheese"
        },
        {
            "国": "Denmark",
            "州": "Storstrom",
            "市": "Nakskov",
            "製品": "Kraft Grated Parmesan Cheese"
        }
    ]
</script>
<script>
    $(document).ready(function () {
        // Spreadを初期化します。
        var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 });

        // アクティブシートを取得します。
        var activeSheet = spread.getActiveSheet();

        // データソースと連結します。
        activeSheet.setRowHeight(0, 30, 1);
        activeSheet.autoGenerateColumns = true;
        activeSheet.setDataSource(data);

        // AutoMergeDirectionがColumnに設定され、AutoMergeModeが制限モードに設定されている場合、完全なシートセルをマージします。
        var range = new GC.Spread.Sheets.Range(-1, -1, -1, -1);

        // SelectionModeがmergedに設定されます。
        activeSheet.autoMerge(range, GC.Spread.Sheets.AutoMerge.AutoMergeDirection.column, GC.Spread.Sheets.AutoMerge.AutoMergeMode.restricted, GC.Spread.Sheets.SheetArea.viewport, GC.Spread.Sheets.AutoMerge.SelectionMode.merged);

        // 列幅を設定します。
        for (var c = 0; c < activeSheet.getColumnCount(); c++)
            activeSheet.setColumnWidth(c, 130.0, GC.Spread.Sheets.SheetArea.viewport);
    });
</script>