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

Excel 가져오기 > Q&A | 토론

본문 바로가기

Wijmo

Q&A | 토론

PureJS Excel 가져오기

페이지 정보

작성자 올트NHJ 작성일 2022-05-10 09:49 조회 3,208회 댓글 0건
제품 버전 : wijmo-5.20221.842_KR
컨트롤 이름 : FlexGrid

본문

FlexGrid 에서 Excel 시트(xlsx, xls, cvs)를 FlexGridXlsxConverter 로 가져오는 경우,

기존의 그리드 컬럼을 무시하고 모든 데이터를 새로 덮어쓰는데 기존 컬럼과의 유효성을 검증할 수 있는 방법은 없나요?

읽어오는 데이터가 기존 컬럼과 맞지 않으면 알람을 노출하고 싶은데요...

문의 드립니다.

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

댓글목록

등록된 댓글이 없습니다.

2 답변

PureJS Re: Excel 가져오기

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

페이지 정보

작성자 GCK루시 작성일 2022-05-10 14:45 댓글 4건

본문

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


문의 주신 기능에 대해서 안내 드리기 앞서 FlexGrid에 엑셀 파일을 불러올 때, unbound 모드가 되어 columns가 리셋됩니다. 엑셀 파일을 로드할 때 column 레이아웃을 유지하고 싶으신 경우, workbook 인스턴스 생성 및 데이터 소스를 할당하시면 됩니다. 아래 샘플을 공유 드리며 샘플에서는 열의 길이가 다르거나 헤더값이 서로 상이한 경우, alert 창을 보여주고 있으니 참고 부탁 드립니다.




- Workbook 클래스 : https://demo.grapecity.co.kr/wijmo/api/classes/wijmo_xlsx.workbook.html

- sourceCollection : https://demo.grapecity.co.kr/wijmo/api/classes/wijmo.collectionview.html#sourcecollection

- changeType : https://demo.grapecity.co.kr/wijmo/api/index.html#changetype


도움말 문서를 같이 전달 드리며 다른 궁금한 점이 생기면, 문의 주시기 바랍니다. 


감사합니다. 

그레이프시티 드림 

댓글목록

올트NHJ님의 댓글

올트NHJ 작성일

답변 주신대로 Workbook 인스턴스를 사용하여 excel 파일 로드 시 검증하도록 코드를 작성했습니다.
excel 파일은 wijmo.grid.xlsx.FlexGridXlsxConverter.save() 를 이용하여 다운로드한 파일을 사용했습니다.

코드를 작성하고 excel 파일을 로드하려고 하니 아래와 같은 에러가 발생했습니다.

wijmo.min.js:14 Uncaught ** Assertion failed in Wijmo: Please use JSZip 3.0 to load excel files asynchrounously. Error
    at Object.assert (https://cdn.grapecity.com/wijmo/5.latest/controls/wijmo.min.js:14:17519)
    at Function._xlsx.loadAsync (https://cdn.grapecity.com/wijmo/5.latest/controls/wijmo.xlsx.min.js:14:34327)
    at Workbook.loadAsync (https://cdn.grapecity.com/wijmo/5.latest/controls/wijmo.xlsx.min.js:14:2462)

이후 https://cdnjs.cloudflare.com/ajax/libs/jszip/2.5.0/jszip.min.js 라이브러리를 https://cdnjs.cloudflare.com/ajax/libs/jszip/3.5.0/jszip.min.js 으로 교체한 후 다시 로드를 시도하니 아래와 같은 에러가 발생했습니다.

jszip.min.js:13 Uncaught (in promise) Error: Invalid base64 input, bad content length.
    at Object.r.decode (jszip.min.js:13:1534)
    at jszip.min.js:13:35527

또한 JSZip 을 3.0 으로 교체한 후에 excel 다운로드 시에도 아래와 같은 에러가 발생했습니다. (2.5 에서는 정상)

wijmo.min.js:14 Uncaught ** Assertion failed in Wijmo: Please use JSZip 2.5 to save excel files synchronously. Error
    at Object.assert (https://cdn.grapecity.com/wijmo/5.latest/controls/wijmo.min.js:14:17519)
    at Function._xlsx._saveWorkbookToZip (https://cdn.grapecity.com/wijmo/5.latest/controls/wijmo.xlsx.min.js:14:40091)
    at Function._xlsx.save (https://cdn.grapecity.com/wijmo/5.latest/controls/wijmo.xlsx.min.js:14:34490)
    at Workbook.save (https://cdn.grapecity.com/wijmo/5.latest/controls/wijmo.xlsx.min.js:14:1475)

추가 확인 부탁드립니다.

GCK루시님의 댓글의 댓글

GCK루시 작성일

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

먼저 문의 주신 내용과 관련하여 어떤 메서드를 사용하냐에 따라, 적용할 JSZip 라이브러리 버전이 달라집니다. 
Workbook.saveAsync와 Workbook.loadAsync을 사용하시는 경우, JSZip 버전 3.*을, 
Workbook.save과 Workbook.load 메서드를 사용하시는 경우, JSZip 버전 2.*을 사용하셔야 합니다.

공유해주신 내용으로 보았을 때, 동기식/비동기식 메서드를 혼용하여 사용하셨기에 해당 에러가 나타난 것으로 추측됩니다. 따라서 loadAsync 메서드로 로드하는 경우, save 메서드를 saveAsync 메서드로 변경하시는 등 같은 방식의 메서드를 이용해주시기 바랍니다.
해당 내용은 아래 wijmo.xlsx 모듈 API 문서 페이지에도 나와있으니 참고 부탁 드립니다.
- https://demo.grapecity.co.kr/wijmo/api/modules/wijmo_xlsx.html

감사합니다.
그레이프시티 드림

삭제된 댓글

GCK루시 작성일

삭제된 댓글 입니다.

올트NHJ님의 댓글

올트NHJ 작성일

말씀해주신대로 적용하니 save, load 모두 잘 되었습니다.

그런데 xlsx 파일 외에 xls, csv 파일 load 시에 아래와 같은 에러가 발생하는데 xls 및 csv 파일은 어떻게 load 해야하나요?

xls 파일 로드 시

Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'rows')
    at eval (eval at compile (httpVueLoader.js:1:1), <anonymous>:274:36)
    at wijmo.xlsx.min.js:14:2527

csv 파일 로드 시
Uncaught (in promise) Error: Can't find end of central directory : is this a zip file ? If it is, see http://stuk.github.io/jszip/documentation/howto/read_zip.html
    at d.readEndOfCentral (jszip.min.js:13:6532)
    at d.load (jszip.min.js:13:8246)
    at jszip.min.js:12:11639

PureJS Re: Excel 가져오기

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

페이지 정보

작성자 GCK루시 작성일 2022-05-11 15:04 댓글 0건

본문

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


Wijmo는 XLSX 파일 형식에 대해서만 import 기능을 지원하고 있기 때문에 CSV 파일 또는 XLS 파일을 XLSX 파일로 변환하여 가져오시기 바랍니다. Export 기능 또한 XLS 은 지원하고 있지 않으며 CSV의 경우, getClipString 메서드를 이용하여 FlexGrid를 CSV로 Export는 하실 수 있습니다. 아래 도움말 문서를 전달 드리오니 참고 부탁 드립니다.

 

- FlexGrid를 CSV로 내보내기 : https://demo.grapecity.co.kr/wijmo/docs/Topics/Grid/ImportExport/Export-To-Excel-CSV

- getClipString : https://demo.grapecity.co.kr/wijmo/api/classes/wijmo_grid.flexgrid.html#getclipstring


원하시는 답변을 드리지 못한 점과 혼동을 드린 점 죄송합니다.


감사합니다.

그레이프시티 드림

댓글목록

등록된 댓글이 없습니다.

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