[{"id":"7720ca38-fc98-4fd8-a3a5-3c0e730c3c72","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"247ded67-b050-4436-be40-fe7b0eeabef7","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"9a8c377f-1f1e-476e-b487-c2339da9bed3","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"5e8e6db2-89b9-4184-bbdc-301ee676869e","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"e04b598e-b0d8-4054-bdac-5143d90b3d51","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"edb028d0-a8cc-42b2-acda-42a5515729f0","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"2adde444-20a6-43d7-8896-2b445877327a","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"6ab8ced2-6c7a-41b6-b861-ba066bd40f40","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"0c34aedd-80a3-470b-a0f6-c327a4346be7","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"717a5892-fa23-499b-a61d-cff228943aaf","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"bd9be971-69fc-4793-ad6d-234be7a93048","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"a1e8d38f-43d8-4b3e-b747-3fbf7656fcd9","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"d6995fdf-76ee-421f-9e7a-3fb324d14bbb","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"64fa3155-4543-4acd-83b7-f9860fd46673","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"698413bd-0b16-4287-baec-644d98a411d1","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"7e4393a0-21ef-438b-981b-325b64db5baa","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]}]
テーブルシートは、指定されたフィールドによるデータソースのグループ化、つまり、同じ内容のセルを1つのセルに自動的にマージすることをサポートしています。グループ化された列は、次の種類の列で構成されます。
ベース列: 元の列値が含まれます。
サマリー列: ユーザー定義数式で計算された集計結果が含まれます。
スライス列: 集計結果のスライス(集計結果を項目ごとに分割して集計した列)が含まれます。
次の画像は、テーブルシートグループ化のさまざまな列種類を示しています。
テーブルシートクラスのgroupByおよびremoveGroupByメソッドを使用して、それぞれグループ化およびグループ化の解除ができます。次のサンプルコードは、サマリー列とスライサ列を含むグループ化された列を追加する方法を示しています。
function grouping() {
// サマリーフィールドとスライスフィールドを使用して、単一フィールド(Selling package)でgroupByを作成します。
sheet.groupBy([
{
caption: "Selling Package", field: "sellingPackage", width: 150, style: { backColor: "#F9CA9A" },
summaryFields: [
{
caption: "SUM(Unit Price)",
formula: "=SUM([unitPrice])",
slice: { field: "=YEAR([@validFrom])", width: 120, style: { backColor: "#FCE3CA", formatter: "#,##0.00" } },
width: 150,
style: { backColor: "#FAD7B2", formatter: "#,##0.00" }
}
]
}
]);
}
テーブルシートのグループ化は、関連するベース列のコンテンツとともにグループエントリを展開または折りたたむためのアウトラインを提供します。
デフォルトでは、グループのアウトラインはビューポートとともに列ヘッダに配置されます。行ヘッダ領域、または行ヘッダと列ヘッダの両方に表示するように構成することも、グループのアウトラインを完全に非表示にすることもできます。GroupOutlinePosition列挙型オプションを使用することで、アウトラインの位置を設定したり、アウトラインを非表示にしたりすることが可能です。
次のサンプルコードは、上記の図に示すように、行ヘッダにグループアウトラインを設定する方法、またはグループアウトラインを非表示にする方法を示しています。
function grpOutlinePosition() {
// GroupOutlinePositionを「rowHeader」に設定します。
sheet.groupOutlinePosition(GC.Spread.Sheets.TableSheet.GroupOutlinePosition.rowHeader);
}
function grpOutlineHide() {
// GroupOutlinePostionを「none」に設定します。
sheet.groupOutlinePosition(GC.Spread.Sheets.TableSheet.GroupOutlinePosition.none);
}
detailColumnsVisibleメソッドのブールパラメータをfalseに設定することで、グループ化した後ベース列を非表示にすることもできます。
function detailColumnVisible() {
// 詳細列を非表示にします。
sheet.detailColumnsVisible(false);
}
テーブルシートは複数のグループ化をサポートし、groupByメソッドで複数のフィールドを定義して複数レベルのグループ化を作成できます。
次のサンプルコードは、テーブルシートビューで複数レベルのグループ化を設定する方法を示しています。
function grpByMultipleFields() {
// 最初に「Selling Package」フィールドでグループ化し、DATEPART数式を使用して利用可能な年の四半期ごとに日付でグループ化します。
sheet.groupBy([
{ caption: "Selling Package", field: "sellingPackage", width: 150, style: { backColor: "#FAD7B2" } },
{ caption: "Year Quarter", field: `=DATEPART([@validFrom],"yyyyQQQ")`, width: 150, style: { backColor: "#FCE3CA" } }
]);
}
テーブルシートで、複数レベルでグループ化を適用すると、デフォルトではレイアウトはより多くのスペースを占有します。次の複数グループ化の動作は、グループ化の結果をより適切に表示するのに役立ちます。
グループ化が折りたたまれている場合、詳細列のセルは空で表示されます。
親グループが折りたたまれている場合、子グループのセルも空で表示されます。
複数グループの折りたたみ状態を設定するには、expandGroupメソッドとexpandGroupItemメソッドを使用できます。
テーブルシートは、グループ内のソートに対応し、 グループ列とベース列で動作します。
次の画像は、ソート結果がグループ化の結果に基づいていることを示しています。本例で、「Selling Package」グループ列は昇順で、「YearQuarter」グループ列と「StockItemKey」ベース列は降順で並べられます。
テーブルシートのグループ列でソートを使用すると次の動作になります。
ソート状態は、グループ列のソースとそれ自体の間で共有されます。
グループレベルで一つの列しかソートできません。
groupByを適用する前およびremoveGroupByメソッドを適用した後の最後のソート状態が保持されます。