SpreadJSは、ユーザーが印刷範囲を設定するたびに「Print_Area」というカスタム名でワークシート内に印刷範囲を定義します。カスタム名「Print_Area」のメリットは以下の通りです。
SpreadJSの名前の管理は、印刷範囲と同じ参照を持つ「Print_Area」カスタム名を追加します。名前ボックスのドロップダウンから「Print_Area」をアクセスしてワークシートで印刷範囲を選択することができます。
ユーザーが、「名前の管理」ダイアログで他のカスタム名と同様に「Print_Area」のカスタム名も手動で作成したり編集したりすることができます。カスタム名は、カルチャや大小文字で区別されるものではありません。
メモ:「Print_Area」カスタム名は、シートのスコープ内であり、シートの範囲を参照している限りに有効です。無効な場合、カスタム名のみとして考慮されます。
したがって、ユーザーは、印刷範囲に影響せずに、ワークブックのスコープでカスタム名「Print_Area」を追加できます。
「Print_Area」カスタム名で印刷範囲を設定した場合に、行列の追加・削除などの変更に応じて、印刷範囲を自動的に更新する場合は、印刷範囲を絶対参照($A$1:$E$10など)で設定します。相対参照で設定した場合は、行列を変更しても印刷範囲は更新されません。
「Print_Area」カスタム名から取得した印刷範囲で次のPrintInfoクラスメソッドの値が設定されます:rowStart、rowEnd、columnStart及び columnEnd。
逆に、クラスメソッドはSpreadJSのワークシートに「Print_Area」カスタム名を設定します。印刷範囲をカスタム名「Print_Area」とPrintInfoメソッドのいずれかの方法で設定することをお勧めします。
次のサンプルコードは、「Print_Area」カスタム名がPrintInfoメソッドにどのように影響するかを示しています。
JavaScript |
コードのコピー
|
---|---|
// ワークブックとワークシートを構成します。 var spread = new GC.Spread.Sheets.Workbook("ss"); var sheet = spread.getActiveSheet(); var printInfo = sheet.printInfo(); // Print_AreaはPrintInfoに影響します。 sheet.addCustomName("Print_Area", "=$A$1:$B$5") console.log(printInfo.rowStart()) // 出力: 0 console.log(printInfo.rowEnd()) // 出力: 4 sheet.removeCustomName("Print_Area", "") console.log(printInfo.rowStart()) // 出力: -1 console.log(printInfo.rowEnd()) // 出力: -1 |
次のサンプルコードは、、PrintInfoメソッドが「Print_Area」カスタム名にどのように影響するかを示しています。
JavaScript |
コードのコピー
|
---|---|
// PrintInfoはPrint_Areaに影響します。 printInfo.rowStart(1) // シートのrowCountが20であると仮定します。 sheet.getCustomName("Print_Area") // NameInfoインスタンスを返します。数式は「=2:20」です。 console.log(printInfo.rowStart()) // 出力: 1 console.log(printInfo.rowEnd()) // 出力: -1 printInfo.rowEnd(15) sheet.getCustomName("Print_Area") // NameInfoインスタンスを返します。数式は「=2:16」です。 console.log(printInfo.rowEnd()) // 出力: 15 |
次のサンプルコードは、「Print_Area」カスタム名とPrintInfoメソッドが相互にどのように影響するかを示しています。
JavaScript |
コードのコピー
|
---|---|
// Print_AreaとPrintInfoは相互に影響します。 sheet.addCustomName("Print_Area", "=$A$1:$B$5") console.log(printInfo.rowStart()) // 出力: 0 console.log(printInfo.rowEnd()) // 出力: 4 printInfo.rowStart(1); sheet.getCustomName("Print_Area") // NameInfoインスタンスを返します。数式は「=A2:B5」です。 |
SpreadJSでは、数式でカスタム名「Print Area」を使用できます。本機能を使用することで、ワークシートで条件付きステートメントを利用して、動的に印刷範囲を作成することができます。
例えば、「=IFERROR(ROWS(Print_Area),"none")」の数式を挿入して印刷する行数を表示できます。印刷範囲が存在しない場合は、「none」を表示します。
次のサンプルコードで示すように、セルに値が挿入されているかどうかに応じて、印刷範囲を自動的に更新することもできます。
JavaScript |
コードのコピー
|
---|---|
// ワークブックとワークシートを構成します。 var spread = new GC.Spread.Sheets.Workbook("ss"); var sheet = spread.getActiveSheet(); var printInfo = sheet.printInfo(); // 条件付きステートメントを含む数式。 sheet.addCustomName("Print_Area", "=IF(Sheet1!$A$1,Sheet1!$B$1:$C$5,Sheet1!$D$5:$F$8)") // A1が真値であると仮定します。 console.log(printInfo.rowStart()) // 出力: 0 console.log(printInfo.rowEnd()) // 出力: 4 printInfo.rowStart(1); sheet.getCustomName("Print_Area") // NameInfoインスタンスを返します。数式は「=$B$2:$C$5」です。 |