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

setValue, 서식 유지 문의 > Q&A | 토론

본문 바로가기

Java & Kotlin API

Q&A | 토론 - Java

Java setValue, 서식 유지 문의

페이지 정보

작성자 자동화 작성일 2023-07-03 15:28 조회 237회 댓글 1건
제품 버전 : 6.0.4
컨트롤 이름 : setValue

본문

[특정 영역]에 데이터를 업데이트하기위해, 아래와 같이 함수를 만들어서 사용중입니다. 

worksheet.getRange(1,1,3,3).setValue(Object)


1) setValue 를 통해 값으로만 붙여넣기가 가능한가요? 

(현재는 기존 영역에 적용된 서식이 없어집니다)



2) 해당 영역에 기존 서식을 유지하고 싶어서, 아래와 같이 해봤는데 안되네요.

IStyle originStyle = worksheet.getRange(...).getStyle();

worksheet.getRange(.....).setValue(...);

worksheet.getRange(...).setStyle(originStyle);


→ 결국 기존 서식을 따로 저장 후 내용을 붙여넣고, 다시 기존 서식을 (값은 최신으로 변경되고) 적용하고 싶습니다. RichText 등 비슷한 기능들이 있을법한데 잘 모르겠네요. 확인 부탁드립니다. 감사드립니다. 


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

댓글목록

자동화님의 댓글

자동화 작성일

하이퍼링크 관련 로직에서 서식을 없애는 것 같습니다. 
현재 문제가 되는 부분 (서식이 사라지는)은 아래와 같습니다. 
※ 원하는 것은 테두리, 줄바꿈 등의 서식을 유지한채 하이퍼링크만 적용하는 것입니다. 감사합니다.

worksheet.getRange(1,1,3,3).setValue(...);
worksheet.getRange(1,1,3,3).getHyperlinks().delete();

for (int row = 1; row < 4; row++) {
    for (int column = 1; column < 4; column++) {
        worksheet.getRange(row, column).getHyperlinks().add(worksheet.getRange(row, column), worksheet.getRange(row, column).getValue().toString());
    }
}

2 답변

Java Re: setValue, 서식 유지 문의

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

페이지 정보

작성자 GCK루카스 작성일 2023-07-04 14:36 댓글 1건

본문

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


기본적으로 setValue 는 기존 서식에 영향을 주지 않고 값만 입력합니다.


전달해주신 코드 중 "worksheet.getRange(1,1,3,3).getHyperlinks().delete();" 코드에서 스타일 제거를 유발하는 것으로 확인되었습니다.

해당 동작이 의도적으로 설계된 동작인지는 추가로 확인 중입니다.

다만, 해당 코드를 제거하시면 정상으로 동작하고, 새로 입력하시는 하이퍼링크도 생성되는 것으로 확인하였습니다.

저희 편에서 테스트한 샘플 코드를 아래에 첨부 드립니다.

		worksheet.getRange("B3:C4").setValue(new Object[][]{
		    {"http://www.google.com/", "http://www.naver.com/"},
		    {"http://www.daum.net/", "http://www.grapecity.co.kr/"},
		});

		for (int row = 2; row < 4; row++) {
		    for (int column = 1; column < 3; column++) {
		        worksheet.getRange(row, column).getHyperlinks().add(worksheet.getRange(row, column), worksheet.getRange(row, column).getValue().toString());
		    }
		}

혹시 문제가 되는 코드를 꼭 사용해야 하는 상황이시라면 해당 상황에 대해 말씀해주시면 본사 개발팀으로 공유하여 해당 케이스에서도 사용할 수 있도록 개선이 가능한지 이야기해 보도록 하겠습니다.


감사합니다.

그레이프시티 드림

댓글목록

자동화님의 댓글

자동화 작성일

확인 감사드립니다. 다만 Delete를 하지 않을 시, 기존 하이퍼링크가 걸려있던 셀에 일반 텍스트를 입력하게되면 예전 하이퍼링크가 남아있는 오류 상황이 발생합니다. 

....getHyperlinks().delete(); 가 아니더라도 기존 셀에 남아있는 하이퍼링크만 삭제되어 위 현상이 없으면 되는데 관련 방법이 있을지요? 감사합니다. 

Java Re: setValue, 서식 유지 문의

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

페이지 정보

작성자 GCK루카스 작성일 2023-07-05 11:43 댓글 0건

본문

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


하이퍼링크 자체만 제거하기 위해서는 clearHyperlinks() 메소드를 이용하여 제거가 가능합니다.

다만, clearHyperlinks() 메소드 사용 시 기존에 하이퍼링크 상태일 때 적용된 스타일(글꼴 색상과 밑줄)이 그대로 남아있기 때문에 이 두 가지 항목도 변경해 주어야 합니다.

아래 샘플 코드를 참고하여 주시기 바랍니다.

		worksheet.getRange(2,1,2,2).clearHyperlinks();
		worksheet.getRange(2,1,2,2).getFont().setColor(com.grapecity.documents.excel.Color.GetBlack());
		worksheet.getRange(2,1,2,2).getFont().setUnderline(UnderlineType.None);


감사합니다.

그레이프시티 드림

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

카테고리

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