[]
SpreadJS는 사용자가 인쇄 영역을 설정할 때 사용자 지정 이름 “Print_Area”를 통해 워크시트에 인쇄 범위를 정의합니다. “Print_Area” 사용자 지정 이름의 주요 이점은 다음과 같습니다:
사용자가 행 또는 열을 삽입하거나 삭제할 때 인쇄 영역이 업데이트됩니다.
수식 함수에서 사용자 지정 이름을 사용할 수 있습니다.
사용자가 "Print_Area"를 수식으로 설정할 경우, 인쇄 영역이 자동으로 업데이트됩니다.
SpreadJS 이름 관리자는 설정된 인쇄 영역과 동일한 참조를 갖는 "Print_Area" 사용자 지정 이름을 추가합니다. 해당 이름은 이름 상자 드롭다운을 통해 워크시트에서 선택할 수 있습니다.
사용자는 이름 관리자 대화 상자를 통해 다른 사용자 지정 이름처럼 "Print_Area" 사용자 지정 이름을 수동으로 생성하거나 편집할 수도 있습니다. 이 사용자 지정 이름은 문화권이나 대소문자에 영향을 받지 않습니다.
참고: “Print_Area” 사용자 지정 이름은 시트 범위에 있고 해당 시트의 범위를 참조할 때만 유효합니다. 유효하지 않은 경우 일반 사용자 지정 이름으로 작동합니다. 따라서 사용자는 "Print_Area"를 통합 문서 범위로 추가할 수는 있지만, 인쇄 영역에는 영향을 주지 않습니다.
"Print_Area" 사용자 지정 이름에서 가져온 인쇄 범위는 PrintInfo 클래스의 다음 메서드 값으로 설정됩니다: rowStart
, rowEnd
, columnStart
, columnEnd
.
반대로, 이 클래스의 메서드는 SpreadJS 워크시트에서 “Print_Area” 사용자 지정 이름을 설정합니다. 인쇄 범위는 "Print_Area" 사용자 지정 이름 또는 PrintInfo
메서드를 통해 하나만 사용하는 것을 권장합니다.
다음 코드 샘플은 “Print_Area” 사용자 지정 이름이 PrintInfo
메서드에 영향을 주는 방식을 보여줍니다:
// 통합 문서 및 워크시트 구성
var spread = new GC.Spread.Sheets.Workbook("ss");
var sheet = spread.getActiveSheet();
var printInfo = sheet.printInfo();
// Print_Area가 PrintInfo에 영향
sheet.addCustomName("Print_Area", "=A1:B5")
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” 사용자 지정 이름에 영향을 주는 방식을 보여줍니다:
// PrintInfo가 Print_Area에 영향
printInfo.rowStart(1)
// 시트의 행 수가 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
메서드가 서로 영향을 주는 방식을 보여줍니다:
// Print_Area와 PrintInfo가 상호 영향
sheet.addCustomName("Print_Area", "=A1:B5")
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"을 표시합니다.
또한 아래 코드 예제처럼 셀에 값이 입력되었는지 여부에 따라 인쇄 영역을 자동으로 업데이트할 수 있습니다:
// 통합 문서 및 워크시트 구성
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 셀이 참(truthy) 값이라고 가정
console.log(printInfo.rowStart()) // 출력: 0
console.log(printInfo.rowEnd()) // 출력: 4
printInfo.rowStart(1);
sheet.getCustomName("Print_Area")
// NameInfo 인스턴스를 반환하며 수식은 "=B2:C5"