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

조회 및 Excel 관련 문의 > Q&A | 토론

본문 바로가기

Wijmo

Q&A | 토론

ReactJS 조회 및 Excel 관련 문의

페이지 정보

작성자 MESCIUSMAN 작성일 2022-12-23 10:58 조회 957회 댓글 2건
제품 버전 : test
컨트롤 이름 : Excel

본문

안녕하세요 매번 문의 답변에 대해 감사드립니다.


이번 문의 내용은 아래와 같습니다.

조회 시 아래 그리드에 데이터가 출력됩니다.




파일 선택하여 엑셀파일을 임포트하여 데이터를 출력했습니다.





엑셀파일 출력 후 다시 조회 버튼을 누르면 그리드에 조회는 되지만 데이터가 나오지 않습니다.





파일 선택을 누른 후 선택 파일을 없애고 다시 조회 버튼을 눌러도 데이터가 나오지 않습니다.

window.location.reload로 페이지를 새로고침하면 조회 시 다시 데이터가 출력됩니다.


window.location.reload의 방법을 쓰지 않고 엑셀 불러오기를 초기화하는 다른 방법이 있나요?


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

댓글목록

MESCIUSMAN님의 댓글

MESCIUSMAN 작성일

그리고 excel로 불러와서 데이터 출력하면   <FlexGridFilter /> 필터 기능이 사라집니다
확인 부탁드립니다. 감사합니다

GCK다이애나님의 댓글

GCK다이애나 작성일

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

문의 주신 내용에 대해 현재 확인 중에 있으며, 확인이 완료되는 대로 답변 드리도록 하겠습니다.
답변이 지연되어 죄송합니다.

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

1 답변

ReactJS Re: 조회 및 Excel 관련 문의

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

페이지 정보

작성자 GCK다이애나 작성일 2022-12-28 11:37 댓글 0건

본문

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


먼저 답변이 지연되어 죄송합니다.

문의 주신 내용에 대해 다음과 같이 답변 드립니다.

1. Excel 파일에서 가져온 데이터가 바인딩 된 그리드의 데이터 초기화 후 다른 데이터를 바인딩 하는 방법

FlexGrid 는 collectionView 속성을 통해 바인딩 된 데이터에 대한 열을 자동적으로 생성합니다. Excel 파일의 데이터를 FlexGrid 에 바인딩 시, 데이터는 각 행에 내부적으로 바인딩 되며 이로 인해 FlexGrid 의 collectionView 속성의 값은 null 이 됩니다. 이때 새로운 데이터를 FlexGrid 에 바인딩 하는 경우, FlexGrid 는 collectionView 속성을 통해 새 데이터에 대한 열을 생성하려 하지만 기존의 Excel 파일의 데이터로 인해 생성된 열을 제거하지는 않습니다. 

따라서 Excel 파일의 데이터가 바인딩 된 FlexGrid 에 새로운 데이터를 바인딩 하시려는 경우, 아래의 코드와 같이 itemsSource 속성을 통해 FlexGrid 의 데이터를 변경 한 후 기존의 Excel 파일의 데이터로 인해 생성된 열을 splice 메서드를 이용해 제거하시면 됩니다.

  function click(e) { // FlexGrid 에 데이터 재바인딩
    grid.itemsSource = source;
    updateColumns(grid); // Excel 파일의 데이터로 인해 생성된 열 제거
  }

  function updateColumns(flex) {
    // Excel 파일의 데이터가 바인딩된 열 제거
    for (let i = 0; i < flex.columns.length; i++) {
      if (!flex.columns[i].binding) { // binding 속성이 null 인 열
        flex.columns.splice(i, 1);
        i--;
      }
    }
  }


이와 관련된 API 문서를 공유 드리오니 참고해 보시기 바랍니다.

- itemsSource API 문서

- columns API 문서

- binding API 문서


2. Excel 파일에서 가져온 데이터가 바인딩된 그리드에 필터를 적용하는 방법

FlexGridFilter 컨트롤의 경우, FlexGrid 의 collectionView 속성 값을 이용하여 생성되게 됩니다. 따라서 1번 항목의 내용과 같이, Excel 파일의 데이터가 바인딩 된 FlexGrid 는 collectionView 속성 값은 null 이므로 FlexGridFilter 컨트롤이 생성되지 않습니다.

Excel 파일의 데이터가 바인딩 된 FlexGrid 에 FlexGridFilter 컨트롤을 생성하시려는 경우, loadAsync 메서드의 onLoaded 매개 변수에 Excel 파일의 데이터를 이용하여 생성된 CollectionView 객체를 FlexGrid 의 itemsSource 속성에 지정하는 사용자 정의 함수를 지정하시면 됩니다.

이때, 1번 항목의 내용과 같이 itemsSource 속성을 통해 데이터를 변경하더라도 Excel 파일의 데이터로 인해 생성된 열은 제거되지 않습니다. Excel 파일의 데이터로 인해 생성된 열을 제거하기를 원하시는 경우, 사용자 정의 함수에 binding 속성의 값이 null인 열을 제거하는 코드를 추가하시면 됩니다.


자세한 코드는 아래의 샘플을 참고해 주시기 바라며, 샘플을 '파일 선택' 버튼 클릭>Excel 파일 선택>'가져오기' 버튼 클릭 순서로 이용하여 Excel 파일의 데이터가 바인딩 된 그리드의 열 헤더에 생성된 필터를 확인해 보시기 바랍니다.  


이와 관련된 API 문서를 공유 드리오니 참고해 보시기 바랍니다.

- loadAsync API 문서

- FlexGridFilter (React) 데모

- FlexGridFilter Class API 문서


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


감사합니다.

그레이프시티 드림

댓글목록

등록된 댓글이 없습니다.

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