Spread.Sheetsでは、Excelと同様に正確なスクロールが拡張的にサポートされているので、ワークシートをさらに制御でき、スムーズで完璧なスクロールを行えます。
ユーザーは手動または自動でスプレッドシートをピクセル単位によるスクロールできます。手動でスクロールする場合は、ピクセルを設定し、スクロールバーの矢印ボタンを使用して、指定したピクセル数だけ水平または垂直方向にスプレッドシートをスクロールできます。自動でスクロールする場合は、垂直および水平方向をピクセル単位で設定して、指定したピクセルまで自動的にスクロールできます。
本機能は、ユーザーがワークシートのセル間をしっかりと移動できるようにすることで、ユーザーエクスペリエンスを向上させます。
次は、ピクセル単位によるスクロールを使用できるいくつかの例です。
ユーザーは、ピクセル単位で列を水平方向に、行を垂直方向にスクロールでき、両方の方向にピクセル単位でスクロールできます。
Spread.Sheetsでは、ワークシートでピクセル単位でスクロールする機能を使用する際、次のマウスホイールとキーボードの操作がサポートされています。
デフォルトでは、ExcelとSpread.Sheetsの両方が行または列のみでスクロールします。ワークシートでピクセル単位スクロールを有効にするには、scrollByPixelプロパティを「true」に設定します。そうすると、スクロールバーの矢印ボタンを使用して、指定したピクセル数でスプレッドシートを手動でスクロールできます。
例えば、さまざまな国と特定の国の州の製品分析を示すスプレッドシートで作業しているとします。行と列をスクロールする際、特定の国の最後の項目(州)または最後の列(製品の詳細)を確認する場合があります。この場合、デフォルトのスクロールを使用すると、一度に行全体や列全体が飛び越されたりするため、操作全体が煩雑になります。
次の図は、ワークシートでピクセル単位によるスクロールを示します。
JavaScript |
コードのコピー
|
---|---|
// ピクセル単位による正確なスクロールを有効にします。 spread.options.scrollByPixel = true; spread.options.scrollPixel = 5; |
注意: ピクセル単位によるスクロールでは、次のような制限があります。
次のコードは、カスタムのピクセルサイズを設定し、ワークシートの行と列をスクロールする方法を示します。
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 sheet = spread.getSheet(0); spread.suspendPaint(); // ピクセル単位による正確なスクロールを有効にします。 spread.options.scrollByPixel = true; // データソースを連結します。 sheet.setRowHeight(0, 30, 1); sheet.autoGenerateColumns = false; sheet.setDataSource(data); var colInfos = [ { name: '国', size: 180 }, { name: '州', size: 120 }, { name: '市', size: 120 }, { name: '製品', size: 280 } ]; sheet.bindColumns(colInfos); // 範囲を追加します。 var defaultStyle = sheet.getDefaultStyle(); defaultStyle.vAlign = GC.Spread.Sheets.VerticalAlign.center; defaultStyle.hAlign = GC.Spread.Sheets.HorizontalAlign.center; sheet.setDefaultStyle(defaultStyle); var cc = sheet.getColumnCount(), rc = sheet.getRowCount(); for (var c = 0; c < cc; c++) { var tempValue = null, tempRow = -1, tempRowCount = -1; for (var r = 0; r < rc; r++) { var cellValue = sheet.getValue(r, c); if (tempValue == null) { tempValue = cellValue; tempRow = r; tempRowCount = 1; } else if (tempValue === cellValue) { tempRowCount++; } else { if (tempRowCount > 1) { sheet.addSpan(tempRow, c, tempRowCount, 1); } tempValue = cellValue; tempRow = r; tempRowCount = 1; } } if (tempRowCount > 1) { sheet.addSpan(tempRow, c, tempRowCount, 1); } } spread.resumePaint(); // イベントを連結してscrollByPixelを設定します。 var scrollByPixel = document.getElementById("scrollByPixel"); scrollByPixel.addEventListener("change", function () { spread.options.scrollByPixel = scrollByPixel.checked; }); var scrollPixel = document.getElementById("scrollPixel"); document.getElementById("setScrollPixel").addEventListener("click", function () { spread.options.scrollPixel = parseInt(scrollPixel.value); }); }); </script> |
ワークシートで自動的にピクセル単位スクロールを有効にするには、scrollメソッドを使用します。このメソッドは、垂直および水平方向をピクセル単位(vpixelsおよびhpixels)で設定して、指定したピクセルまで自動的にスクロールします。
また、scrollByPixelプロパティを使用して、以下の動作を実現することができます。
例えば、さまざまな国と特定の国の州の製品分析を示すスプレッドシートで作業しているとします。行と列をスクロールする際、1つの国に関するすべてのデータを表示するスプレッドシートの特定のビューポートを確認する場合があります。この場合、自動スクロールを使用して目的のデータを表示できます。
次の図は、ワークシートでピクセル単位による自動スクロールを示します。
次のコードは、水平および垂直方向のカスタムのピクセルサイズを設定し、ワークシートの指定した位置にスクロールする方法を示します。
JavaScript |
コードのコピー
|
---|---|
// activesheetを取得します。 var activeSheet = spread.getActiveSheet(); spread.options.scrollByPixel = true; //これは、シートを下方向に30ピクセルに、右方向に15ピクセルに設定します。 activeSheet.scroll(30, 15); |