! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

ExcelIO 이미지 export 문제 > Q&A | 토론

본문 바로가기

PureJS ExcelIO 이미지 export 문제

페이지 정보

작성자 케어가든 작성일 2023-10-19 17:55 조회 232회 댓글 0건
제품 버전 : SpreadJS16.0.2
컨트롤 이름 : shapes

본문


안녕하세요 SpreadJS를 이용해 웹 모듈 개발 중에 있습니다.

개발 중 ExcelIO를 이용해 excel export 시 이미지가 계속해서 출력되지 않는 문제가 있어 문의드립니다.


편집 중 버튼으로 이미지를 넣을 수 있도록 개발 중이라

이미지가 추가된 셀은 아래 스크립트와 같은 형태로 작성되어 있습니다.


버튼이 남아있는 셀:

var imageBtn = new GC.Spread.Sheets.CellTypes.Button(); 

sheet.setCellType(row, col, imageBtn, GC.Spread.Sheets.SheetArea.viewport); 


이미지가 추가된 셀:

sheet.getCell(row, col).formatter('=IMAGE("'이미지 주소'")');



그리고 삽입된 이미지를 추출되는 엑셀 파일에도 정상적으로 띄우기 위해서

https://dev.grapecity.co.kr/bbs/board.php?bo_table=spreadjs_qna&wr_id=695&sfl=wr_subject&stx=export+%EC%9D%B4%EB%AF%B8%EC%A7%80&sst=wr_datetimedesc&sop=and 

위의 포럼 글을 참고,  function toDataURL을 추가하여 이미지 URL을 base64로 변환해

아래와같은 스크립트로 시트 위에 이미지를 삽입하였고...

var cellRect = sheet.getCellRect(row, col);

var url = sheet.getFormatter(row, col).substring(8).slice(0, -2);

toDataURL(url, function (dataUrl) {

                    var img = sheet.pictures.add('img', dataUrl, cellRect.x-100, cellRect.y-70, 100, 70);

                    img.startRow(row);

                    img.startColumn(col);

                    img.startRowOffset(0);

                    img.startColumnOffset(0);

                });


웹 화면에는 이런 형태로 그림이 유지되나 선택되지는 않았습니다.

(셀 배경으로 박힌 것처럼, 편집하려 하면 text cursor가 나타남)



 

export한 엑셀 파일에는 이와 같이 나타났습니다.

base64변환된 이미지가 웹 상에서 정상적으로 보이는 것을 확인했으며, 

sheet.pictures.add 대신

sheet.shapes.addPictureShape 를 사용해도 결과가 같았습니다


링크에 있는 codepen샘플은 정상적으로 이미지가 잘 출력되는데 왜 제가 작성중인 스크립트에서는 이미지 출력에 문제가 있는지 아직 해결책을 못 찾았습니다. 문제점을 찾아주실 수 있을까요


  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

1 답변

PureJS Re: ExcelIO 이미지 export 문제

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 GCK루카스 작성일 2023-10-24 10:21 댓글 0건

본문

안녕하세요 그레이프시티입니다.


버튼 셀 타입이나 포맷터 안의 IMAGE 스파크라인 함수는 엑셀에서는 지원하지 않는 SpreadJS의 자체 기능이기 때문에 엑셀 내보내기 시 유지되지 않는 것이 정상입니다.


다만, sheet.pictures.add 를 사용해도 내보내기 시 이미지가 나타나지 않았다면, "gc.spread.sheets.shapes.xx.x.x.min.js" 라이브러리가 로드되지 않았기 때문일 수 있습니다.

이전에 보셨던 코드펜 샘플과 코드 상 다르지 않다면, 라이브러리 로드 상태를 확인해 보시기 바랍니다.


[프리미엄 회원 전환 안내]
라이선스를 보유하고 계신다면, 누구나 추가 비용 없이 그레이프시티 포럼 프리미엄 회원이 될 수 있습니다.
프리미엄 회원으로 전환 시, 기술 문의에 대하여 우선 지원 받으실 수 있습니다.
아래 링크를 통해 프리미엄 회원 전환 방법 및 혜택 안내를 살펴보시길 바랍니다.


감사합니다.

그레이프시티 드림

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.