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

Spread 엑셀 출력시 마스킹내용 그대로 출력가능한지 문의요청드립니다. > Q&A | 토론

본문 바로가기

Spread.NET

Q&A | 토론

WinForms윈폼 Spread 엑셀 출력시 마스킹내용 그대로 출력가능한지 문의요청드립니다.

페이지 정보

작성자 shshin 작성일 2021-02-25 13:53 조회 5,272회 댓글 0건
제품 버전 : 8.35.20152.0

본문

비쥬얼 스튜디오에서 작업을 하고 있는데

Spread에 셀 타입이 Mask으로 ####-##-## 로 날짜를 나타내고 있습니다.

그런데 엑셀로 출력시 Mask값이 적용되지 않고 출력이 되어 어떻게 하면

마스크까지 적용되어 엑셀에 나타낼수있는지 문의드립니다.


ex : 2021-02-25 -> 20210225


현재

fpExcel.SaveExcel(fileName, FarPoint.Excel.ExcelSaveFlags.SaveCustomColumnHeaders | FarPoint.Excel.ExcelSaveFlags.SaveAsViewed);

이렇게 엑셀로 출력하고 있습니다.

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

댓글목록

등록된 댓글이 없습니다.

2 답변

WinForms윈폼 Re: Spread 엑셀 출력시 마스킹내용 그대로 출력가능한지 문의요청드립니다.

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

페이지 정보

작성자 하늘을날자 작성일 2021-02-26 08:13 댓글 1건

본문

안녕하세요?


원인은 나중에 알아보는 것도 나쁘지 않을 것 같습니다. 

Spread 기능은 그레이프시티에서 제일 잘 아니까

답변도 기다려 보시고요


매번 답변하면서 느끼는 거지만 실행 환경과 버전, 진행 과정등을 모르니 

구체적인 정답을 제시하기 어려워 보입니다. 

그러나 정답을 제시하지 못할 지라도 그 과정을 짐작하면서 따라 해보면 배우는 게 많아서 

전 답변을 하고자 노력합니다. 말 그대로 토론이니까요. 


항상 그렇지만.... 일단은 돌아가는 게 중요하니....


제 성격 상 기본 제공되는 메서드로 처리가 안되면 한참 돌아가더라도 다른 방법으로 처리해 버립니다. 

(원인을 알 때까지. 그리고 프로그래밍은 정답이 없지 않습니까?)


뒷 단에서 처리가 안되면 그 앞에서 처리하면 그만입니다.(ㅎㅎㅎ) 


저는 SQLite(WPF 플랫폼)를 가지고 테스트 했습니다.

다른 DB는 지원되는 함수가 다르니 그에 맞게 처리하면 되겠지요. 



1.현상 또는 환경(질문자님의 환경과 다를 수 있습니다. 정보가 없으니 똑같은 환경은 만들지 못했습니다)

1) SQLite는 날짜 형식이 없으므로 Text 형식으로 '20210225' 8자리로 저장함.

CREATE TABLE userTbl (id Integer Not Null Primary Key Autoincrement,userName Text,userEmail Text,regDate Text) 


아마도 질문자님도 날짜 형식이 아닌 Text 형식으로 해 놓았을 것 같습니다.


2) Spread에서는 CustomMode로 출력

GcSpreadSheet1.Sheets[0].Columns[3].Formatter = new GrapeCity.Windows.SpreadSheet.Data.GeneralFormatter(GrapeCity.Windows.SpreadSheet.Data.FormatMode.CustomMode, "####-##-##");


2.해결 방안 (컬럼명: regDate)

date(substr(regDate, 1, 4) || '-' || substr(regDate, 5, 2) || '-' || substr(regDate, 7, 2)) as regDate 

- 함수를 이용하여 Convert


String sql = "SELECT id,userName,userEmail,date(substr(regDate, 1, 4) || '-' || substr(regDate, 5, 2) || '-' || substr(regDate, 7, 2)) as regDate FROM userTbl Order by id Desc;"; 


[Spread Sheet에 출력한 화면, Convert 후]

a29008f8ed3d5ddc6add9faa89509414_1614294956_7631.PNG
 

[Excel로 내보기 한 화면]

a29008f8ed3d5ddc6add9faa89509414_1614295052_8141.PNG
 

3.추정 원인

스프레드에서 CustomMode로 표현하면 2021-02-25로 보여지나 셀을 더블 클릭하여 보면 원래 값을 가지고 있는 것을 볼 수 있었음(변환하지 않은 상태에서는 2021-02-26이 아니라 20210225로 보여짐)

원래의 값이 그대로 Export 되는 것으로 추정함.

(ExcelSaveFlags를 이리저리 다 바꾸어 봐도 원래의 값 그대로 Export 되었음)


GcSpreadSheet1.SaveExcel(dlg.FileName, GrapeCity.Windows.SpreadSheet.Data.ExcelFileFormat.XLSX, GrapeCity.Windows.SpreadSheet.Data.ExcelSaveFlags.SaveAsViewed); 


댓글목록

shshin님의 댓글

shshin 작성일

지금 날짜가 마스킹하여 나타내는 스프레드 갯수가 너무 많아 일일히 조회 쿼리 및 셀속성을 바꿔주기 힘든 상황이라 엑셀 Export 전에 데이터를 바꿔주던가, Export 시 (ExcelSaveFlags) 같은 속성을 통해 진행할려고 했던 사항이라 그레이프시티 답변을 기다려 보고, 전체 스프레드나, 조회 쿼리를 일괄 수정하던지, 알려준 방법을 통해 바꿔야 할지 고민해봐야 겠습니다. 친절한 답변 감사합니다.

WinForms윈폼 Re: Spread 엑셀 출력시 마스킹내용 그대로 출력가능한지 문의요청드립니다.

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

페이지 정보

작성자 GCK루카스 작성일 2021-03-03 09:47 댓글 0건

본문

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


MaskCellType은 엑셀에서는 지원하지 않는 Spread.NET만의 고유 기능이기 때문에 엑셀로 내보내기 시 유지가 되지 않습니다.

하늘을 날자 님께서 언급해주신 대로 셀에 표시되는 값은 Mask를 포함하여 표시되지만 셀은 입력된 값만을 가지고 있습니다.

엑셀로 내보내기 시 내보내지는 유형에 대해서는 아래 링크를 참고해 주시기 바랍니다.

Cell-Type Settings Exported

엑셀로 내보내기 전 Mask에서 보여주는 대로 별도의 수정 단계 후 내보내기를 진행해 주시기 바랍니다.


다른 궁금한 점이 생기면, 언제든 문의 주시기 바랍니다.


감사합니다.

그레이프시티 드림

* 그레이프시티(GrapeCity)는 개발자를 위하여 ComponentOne(컴포넌트원), Spread(스프레드), ActiveReports(액티브리포츠), SpreadJS(스프레드JS), Wijmo(위즈모)와 같은 엑셀 스프레드시트 리포팅 그리드와 차트 등 다양한 종류의 .NET JavaScript(자바스크립트) 컴포넌트 툴을 생산하고있는 개발툴 전문 회사 입니다.

댓글목록

등록된 댓글이 없습니다.

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