안녕하세요. 그레이프시티입니다.
먼저, 답변이 조금 부족했던 것 같아 죄송하다는 말씀과 함께 추가 설명 드립니다.
getCellRect 메서드를 통해 셀의 x 및 y 좌표 값 계산 시, 기준이 되는 점(0,0)은 Workbook 인스턴스를 호스팅하는 div 요소의 가장 왼쪽 상단 모서리입니다.
또한, addPictureShape 메서드를 통해 이미지 도형을 추가하는 경우, 이미지 도형의 위치는 시트의 viewport 영역의 가장 왼쪽 상단 모서리를 기준으로 지정됩니다.
따라서, getCellRect 메서드를 통해 가져온 셀의 x 및 y 좌표 값으로 이미지 도형이 추가된 경우, x 좌표는 행 헤더의 너비 만큼, y 좌표는 열 헤더의 높이 만큼의 편차를 가지게 됩니다. 셀의 가장 왼쪽 상단 모서리를 기준으로 이미지를 추가하려면 getCellRect 메서드를 통해 얻은 셀의 좌표 값에서 각 편차를 뺀 값을 이미지 도형의 위치 값으로 지정하시면 됩니다.
이때, 행 헤더의 너비와 열 헤더의 높이는 다음과 같은 코드를 이용하여 구할 수 있습니다.
var rowHeader_width = sheet.getColumnWidth(0,GC.Spread.Sheets.SheetArea.rowHeader); // 열 헤더의 너비
var colHeadder_Height = sheet.getRowHeight(0,GC.Spread.Sheets.SheetArea.colHeader); // 행 헤더의 높이
추가적으로, 위와 같이 좌표 편차를 조정하여 이미지를 추가하더라도 이미지가 추가된 이후에, 셀의 너비 혹은 높이 변경 시, 변경된 정도에 따라 이미지의 위치와 크기 또한 변경됩니다.
하여 이미지가 위치한 셀의 너비 혹은 높이가 변경되더라도 이미지의 위치와 크기를 유지하시려면 dynamicMove 혹은 dynamicSize 속성을 false 로 지정하여 동적으로 변경되는 이미지의 위치 및 크기를 고정하시면 됩니다.
아래에 샘플 및 도움말 문서를 공유해 드리오니 참고해 보시기 바랍니다.
- getColumnWidth 도움말 문서
- getRowHeight 도움말 문서
- SheetArea Enumeration 도움말 문서
- dynamicMove 도움말 문서
- dynamicSize 도움말 문서
감사합니다.
그레이프시티 드림