[]
SpreadJS는 도형, 연결선 도형, 그룹 도형에 하이퍼링크를 추가하는 기능을 지원합니다. 이 기능은 JSON 및 Excel 입출력(I/O)에서도 지원됩니다.

hyperlink 메서드를 사용하여 도형에 하이퍼링크를 추가할 수 있으며, 다음과 같은 설정이 포함된 객체 배열을 인수로 받습니다:
URL 위치 (string): 하이퍼링크의 URL을 지정합니다. 웹사이트, 셀 참조, 이메일 주소 등이 될 수 있습니다.
툴팁 (string): 하이퍼링크에 마우스를 올렸을 때 표시될 메시지를 지정합니다.
Target (number): 링크를 클릭했을 때 연결된 문서가 어디에서 열릴지를 지정합니다. HyperlinkTargetType 열거형(enum)에서 값을 선택할 수 있으며, 기본값은 0으로 새 창 또는 탭에서 열립니다.
// 도형에 하이퍼링크 추가=
var circle = sheet.shapes.add("circle", GC.Spread.Sheets.Shapes.AutoShapeType.oval, 40, 60, 100, 100);
circle.text("Visit Google");
circle.hyperlink({url: "http://www.google.com", tooltip: 'go to google'});기존 도형에 하이퍼링크가 설정되어 있는 경우, 새로운 하이퍼링크를 설정하면 기존 하이퍼링크 데이터는 삭제되고 새 데이터로 대체됩니다.
함수나 명령 문자열을 하이퍼링크 데이터에 전달하여, 하이퍼링크 클릭 시 사용자 정의 동작을 수행하도록 만들 수도 있습니다. 아래 예제는 타이머 기능을 수행하는 사용자 정의 하이퍼링크를 추가합니다:

var rect3 = sheet.shapes.add("rectangle3", GC.Spread.Sheets.Shapes.AutoShapeType.roundedRectangle, 261, 188, 280, 140);
// 타이머 명령을 포함한 사용자 정의 하이퍼링크 생성
var stopWatch = new Stopwatch(rect3); // Stopwatch()는 간단한 스톱워치 명령을 포함하는 사용자 정의 함수
rect3.hyperlink({
command: function () {
if (!stopWatch.started) {
stopWatch.start();
} else {
stopWatch.stop();
}
}
});
rect3.text('Click here to start a timer');
var style = rect3.style();
style.fill.type = 0;
style.line.color = "rgb(11,116,77)";
style.textEffect.color = "rgb(11,116,77)";
style.textFrame.hAlign = 1;
style.textFrame.vAlign = 1;
style.textEffect.font = "22px Calibri"
rect3.style(style);참고: JSON 입출력을 수행할 경우,
command속성에 함수를 전달하면 해당 함수는 저장되지 않습니다. 따라서 함수보다는 명령 문자열을 사용하는 것이 권장됩니다.
인수를 전달하지 않고 hyperlink() 메서드를 호출하면, 도형에 설정된 기존 하이퍼링크 정보를 얻을 수 있습니다. 이를 통해 기존 하이퍼링크 객체를 수정한 뒤 다시 메서드에 전달하여 설정할 수 있습니다.
//기존 도형의 하이퍼링크 정보 가져오기
var circleLink = circle.hyperlink();
circleLink.url = "www.google.co.in";
// 변경된 하이퍼링크 설정
circle.hyperlink(circleLink);참고: 변경된 하이퍼링크 데이터를 다시
hyperlink()메서드에 설정하지 않으면, 도형은 기존 데이터를 계속 사용합니다.
hyperlink(null)을 호출하여 도형에서 하이퍼링크를 제거할 수 있습니다.
// 도형 하이퍼링크 제거
circle.hyperlink(null);예를 들어, 분기별 매출 분석 보고서를 생성하는 경우를 생각해보겠습니다. 보고서에는 대시보드가 포함된 시트와 각 분기의 데이터가 포함된 개별 시트들이 존재합니다. 이때, 각 도형에 하이퍼링크를 설정하면 시트 간 빠르게 탐색할 수 있어 매우 편리합니다.

// Dashboard 시트에 각 분기를 나타내는 도형 추가
var Q1shape = sheetDashboard.shapes.add("Q1shape", GC.Spread.Sheets.Shapes.AutoShapeType.pentagon, 30, 60, 100, 100);
Q1shape.text("Quarter 1");
Q1shape.hyperlink({ url: "sjs://Sheet2!A1", tooltip: 'Go to Quarter 1' });
var Q2shape = sheetDashboard.shapes.add("Q2shape", GC.Spread.Sheets.Shapes.AutoShapeType.pentagon, 140, 60, 100, 100);
Q2shape.text("Quarter 2");
Q2shape.hyperlink({ url: "sjs://Sheet3!A1", tooltip: 'Go to Quarter 2' });
var Q3shape = sheetDashboard.shapes.add("Q3shape", GC.Spread.Sheets.Shapes.AutoShapeType.pentagon, 250, 60, 100, 100);
Q3shape.text("Quarter 3");
Q3shape.hyperlink({ url: "sjs://Sheet4!A1", tooltip: 'Go to Quarter 3' });
var Q4shape = sheetDashboard.shapes.add("Q4shape", GC.Spread.Sheets.Shapes.AutoShapeType.pentagon, 360, 60, 100, 100);
Q4shape.text("Quarter 4");
Q4shape.hyperlink({ url: "sjs://Sheet5!A1", tooltip: 'Go to Quarter 4' });
//이전 및 다음 버튼용 도형을 다른 시트에 추가
var BackToDashboardQ1 = sheet1.shapes.add("BackToDashboard", GC.Spread.Sheets.Shapes.AutoShapeType.rectangle,210, 500, 164, 35);
BackToDashboardQ1.text("Dashboard");
BackToDashboardQ1.hyperlink({ url: 'sjs://Sheet1!A1', tooltip: ' Go to Dashboard' });
var RightArrowNextQ1 = sheet1.shapes.add("RightArrowNextQ1", GC.Spread.Sheets.Shapes.AutoShapeType.rightArrowCallout, 400, 500, 164, 35);
RightArrowNextQ1.text("Q2");
RightArrowNextQ1.hyperlink({ url: 'sjs://Sheet3!A1', tooltip: 'Go Next Quarter - Q2' });
var LeftArrowPreviousQ2 = sheet2.shapes.add("LeftArrowPreviousQ2", GC.Spread.Sheets.Shapes.AutoShapeType.leftArrowCallout, 20, 500, 164, 35);
LeftArrowPreviousQ2.text("Q1");
LeftArrowPreviousQ2.hyperlink({ url: 'sjs://Sheet2!A1', tooltip: 'Go to Previous Quarter Q1' });
var BackToDashboardQ2 = sheet2.shapes.add("BackToDashboard", GC.Spread.Sheets.Shapes.AutoShapeType.rectangle,210, 500, 164, 35);
BackToDashboardQ2.text("Dashboard");
BackToDashboardQ2.hyperlink({ url: 'sjs://Sheet1!A1', tooltip: ' Go to Dashboard' });
var RightArrowNextQ2 = sheet2.shapes.add("RightArrowNextQ2", GC.Spread.Sheets.Shapes.AutoShapeType.rightArrowCallout, 400, 500, 164, 35);
RightArrowNextQ2.text("Q3");
RightArrowNextQ2.hyperlink({ url: 'sjs://Sheet4!A1', tooltip: 'Go to Next Quarter - Q3' });
var LeftArrowPreviousQ3 = sheet3.shapes.add("LeftArrowPreviousQ3", GC.Spread.Sheets.Shapes.AutoShapeType.leftArrowCallout, 20, 500, 164, 35);
LeftArrowPreviousQ3.text("Q2");
LeftArrowPreviousQ3.hyperlink({ url: 'sjs://Sheet3!A1', tooltip: 'Go to Previous Quarter Q2' });
var BackToDashboardQ3 = sheet3.shapes.add("BackToDashboard", GC.Spread.Sheets.Shapes.AutoShapeType.rectangle,210, 500, 164, 35);
BackToDashboardQ3.text("Dashboard");
BackToDashboardQ3.hyperlink({ url: 'sjs://Sheet1!A1', tooltip: ' Go to Dashboard' });
var RightArrowNextQ3 = sheet3.shapes.add("RightArrowNextQ3", GC.Spread.Sheets.Shapes.AutoShapeType.rightArrowCallout, 400, 500, 164, 35);
RightArrowNextQ3.text("Q4");
RightArrowNextQ3.hyperlink({ url: 'sjs://Sheet5!A1', tooltip: 'Go to Next Quarter - Q4' });
var LeftArrowPreviousQ4 = sheet4.shapes.add("LeftArrowPreviousQ4", GC.Spread.Sheets.Shapes.AutoShapeType.leftArrowCallout, 20, 500, 164, 35);
LeftArrowPreviousQ4.text("Q3");
LeftArrowPreviousQ4.hyperlink({ url: 'sjs://Sheet4!A1', tooltip: 'Go to Previous Quarter Q3' });
var BackToDashboardQ4 = sheet4.shapes.add("BackToDashboard", GC.Spread.Sheets.Shapes.AutoShapeType.rectangle,210, 500, 164, 35);
BackToDashboardQ4.text("Dashboard");
BackToDashboardQ4.hyperlink({ url: 'sjs://Sheet1!A1', tooltip: ' Go to Dashboard' });Spread 디자이너에서는 도형에 하이퍼링크를 추가할 수 있으며, '하이퍼링크(Hyperlink)' 대화상자를 통해 설정할 수 있습니다. 도형을 마우스 오른쪽 버튼으로 클릭한 후 컨텍스트 메뉴에서 '링크(Link)' 옵션을 선택하거나, 리본 메뉴의 '하이퍼링크(Hyperlink)' 버튼을 클릭하여 '하이퍼링크' 대화상자를 열 수 있습니다.
'하이퍼링크' 대화상자에서는 주소, 연결 대상(Target), 화면 설명(Screen Tip) 등의 옵션을 설정할 수 있습니다.

도형을 선택한 후 마우스 오른쪽 버튼을 클릭하면 표시되는 컨텍스트 메뉴에서 편집(Edit) 또는 제거(Remove) 옵션을 선택하여 도형의 하이퍼링크를 수정하거나 삭제할 수 있습니다.

또한 하이퍼링크가 포함된 도형을 오른쪽 클릭으로 선택한 후 이동 포인터를 사용해 이동하거나 크기를 조정할 수 있습니다.
Ask ChatGPT
