excel export
현재 그리드에 표시된 컬럼 구조대로 데이터셋을 엑셀 파일로 변환해서 로컬파일로 저장하거나 서버로 업로드합니다.
※ export 기능을 사용하기 위해서는 jszip 라이브러리가 필요합니다.
<script src="/scripts/jszip.min.js"></script>
Excel 내보내기
exportGrid()함수로 지정한 설정에 따라 현재 그리드의 모양과 데이터를 외부 문서로 내보냅니다.
해당 영역을 문서에 포함할 것인 지를 지정합니다.
- default - 현재 그리드에 표시된 상태 그대로 출력 합니다.
- visible - 무조건 해당 영역을 포함시켜 출력 합니다.
- hidden - 무조건 포함시키지 않습니다. GridExportOptions API문서에서 화면에 표시되는 그리드를 엑셀 등의 외부 문서로 내보내기할 때 지정하는 설정 모델을 확인할 수 있습니다.
var excelType = Boolean(document.querySelector('input[name="excelType"]:checked').value);
var showProgress = document.getElementById("chkShowProgress").checked;
var indicator = document.querySelector('input[name="indicator"]:checked').value;
var header = document.querySelector('input[name="header"]:checked').value;
var footer = document.querySelector('input[name="footer"]:checked').value;
gridView.exportGrid({
type: "excel",
target: "local",
fileName: "gridExportSample.xlsx",
showProgress: showProgress,
progressMessage: "엑셀 Export중입니다.",
indicator: indicator,
header: header,
footer: footer,
compatibility: excelType,
done: function () { //내보내기 완료 후 실행되는 함수
alert("done excel export")
}
});
원격 Excel 내보내기
엑셀 데이터를 서버로 전송하여 서버에서 내려받길 원하는 경우 target: "remote", url: "서버처리주소"를 지정하면 됩니다. JAVA MVC Project 샘플 파일은 아래 링크에서 다운로드 하실 수 있습니다.
Remote Export 샘플 (opens in a new tab)
//Client
gridView.exportGrid({
type: "excel",
target: "remote",
url: "/remote/ExcelXBin",
fileName: "gridExportSample.xlsx"
});
package com.realgrid.remote;
import java.io.OutputStream;
import java.util.Base64;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class ExcelXBin {
@RequestMapping(value="/ExcelXBin", method=RequestMethod.POST)
public void excelXBin(HttpServletRequest request, HttpServletResponse response) throws Exception {
// Receive
String fileName = request.getParameter("fileName");
String data = request.getParameter("data");
if (data.length() > 0) {
// Decode
byte[] filedata = Base64.getDecoder().decode(data);
// Response Header
response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
response.addHeader("Content-Type","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.addHeader("Pragma", "no-cache");
// Write
OutputStream os = response.getOutputStream();
os.write(filedata);
os.flush();
}
}
}