그리드 - Tabulator 엑셀 형식으로 다운로드하기

2023. 11. 3. 01:54Javascript

Tabulator 에서 현재 그리드의 데이터를 XLSX 형식으로 다운로드하는 API 는 다음과 같다.

let tableObj = new Tabulator(...);

function downloadXLS() {
    tableObj.download("xlsx", "파일명.xlsx");
}

 

기본 설정에서 Tabulator 에서는 통데이터를 그대로 출력해버리기 때문에 레코드가 1000 개를 넘어가면 다운로드 시간도 지연되며 더욱이 그많은 데이터를 다 받아야 하나 싶을 정도로 부담스러워진다.

 

다행히 이것을 해결하는 방법 중의 하나로 범위를 지정해서 다운로드할 수 있다. 현재 검색으로 찾아낸 방법인데 현재 선택된 행만 다운로드하는 것이다. 그런데 여기서 또 한 가지 문제점이 존재한다. selected 를 써서 현재 선택된 행만 다운로드하도록 하는 게 가능하지만 tabulator.selectRow() 를 실행하면 현재 페이지 뿐만 아니라 tabulator 인스턴스가 담고 있는 전체 행을 선택해버리는 상황이 벌어진다. 이걸 해결할 수 있는 좋은 방도가 있다면 댓글로 달아주길 바란다. 더 나은 방법이 있다면 말이다!

// 우선 Tabulator 인스턴스를 생성할 때 설정에
// selectable, downloadRowRange 를 추가해야 한다.
let tableObj = new Tabulator('#myListTbl', {
    selectable: true,
    downloadRowRange: 'selected',
    .
    .
    .
});

function downloadXLS() {
    tableObj.download("xlsx", "파일명.xlsx");
}

 

참고 :

 

https://tabulator.info/docs/5.5/download#xlsx

 

Tabulator - Download Data

Download data from your table in a range of popular file formats

tabulator.info