directDown2Excel (method)

시트에 조회된 데이터는 무시하고, 헤더 정보만 서버로 전송하여, 서버에서 만든 데이터와 결합해 엑셀파일을 생성/다운로드 하는 기능입니다.
이 기능은 조회된 데이터가 많아 이를 엑셀로 다운로드 시키기에는 서버측에 부하가 예상되는 경우 사용하는 기능으로, 서버측에서는 별도로 조회 데이터에 해당하는 내용을
List<Map> 구조로 생성하여 데이터를 SHEETDATA 라는 이름으로 request 객체에 담은 뒤, DirectDown2Excel.jsp 또는 DirectDown2Excel.aspx 파일로 forward 해 주셔야 합니다.

엑셀파일이 다운로드 되는 과정은 아래와 같습니다.
DirectDown2Excel과정

따라서 해당 함수를 사용하시려면 자바 서버모듈의 경우 DirectDown2Excel.jsp와 더불어 ibsheet8-1.0.x.jar 파일과 apache POI 라이브러리가 필요하고, 닷넷 서버모듈의 경우 DirectDown2Excel.aspx와 더불어 IBSheet8-4.0.dll 파일과 Syncfusion 라이브러리 dll이 필요합니다.
그리고 import/export 관련 기능을 사용하시려면, 배포시 같이 제공되는 /plugins/ibsheet-excel.js 파일을 include 하셔야 합니다.

Syntax

void directDown2Excel( param );

Parameters

Name Type Required Description
url string 필수 데이터를 조회할 서버 url
extendParam string 선택 url로 전달할 parameter(querystring형식으로 작성)
multipart boolean 선택 url로 전송시 Content-Type 설정(기본은 multipart 형식이며, 0(false)설정시 일반적인 POST로 전송됨)
fileName string 선택 생성할 엑셀파일 명 (default: "Excel.xlsx")
이 속성에서 파일명과 함께 확장자를 xls, xlsx로 붙이느냐에 따라서 생성 파일이 xls형식이나, xlsx형식으로 만들어집니다.
가급적 xlsx 형식으로 다운로드 하실 것을 권합니다.
sheetName string 선택 만들어지는 엑셀 파일의 WorkSheet에 부여할 이름
downCols string 선택 구분자를 통해 지정한 열만 다운로드 합니다.
별도의 설정이 없으시 모든 열이 다운로드 됩니다.
(ex: "Price|AMT|TotalReward" 식의 컬럼 명을 구분자("|")로 연결한 문자열)
sheetDesign boolean 선택 시트의 디자인 요소를 엑셀에도 반영할지 여부를 설정합니다.
반영되는 디자인 요소는 다음과 같습니다. 헤더의 배경색,폰트명,폰트크기
merge boolean 선택 헤더 영역에 대한 머지 정보를 엑셀에 반영할지 여부
titleText string 선택 엑셀 문서의 상단에 원하는 문자를 추가합니다.
문자는 열구분자("|")와 행구분자("\r\n")을 통해서 작성하실수 있습니다.
가령 "A|B|C\r\nD|E|F" 와 같이 입력한 경우 첫 행에 3개의 셀에 각각 A,B,C 값이 들어가고 두번째 행의 3개의 셀에 각각 D,E,F 값이 입력됩니다. 값 안에서 엔터를 포함하려면 \r 이나 \n 을 삽입하면 됩니다. \r\n 이 10개가 포함되면 11줄을 차지하게 되고 12번째 행부터 시트 내용이 출력됩니다.
titleAlign string 선택 titleText로 삽입한 문자들에 대한 좌우 정렬(default:"center", "left","right"선언가능)
userMerge string 선택 TitleText와 더불어 사용하면서 엑셀 안에 원하는 영역을 머지(병합)합니다.
입력방법은 4개의 숫자로
"머지시작셀 row index,머지시작셀 col index,아래로 병합할 행 개수(1을 설정하면 병합 없음),우측으로 병합할 개수"
로 이루어 집니다.(여러개 병합시에는 띄어쓰기로 구분)
가령 "2,2,1,6 3,2,3,3"위와 같이 설정하였다면 2,2 셀부터 오른쪽으로 6칸이 병합되고, 3,2 셀부터 아래로 3칸,오른쪽으로 3칸이 병합 됩니다.
userMerge
excelRowHeight number 선택 엑셀 문서의 행 높이를 설정합니다.
excelHeaderRowHeight number 선택 엑셀의 헤더행의 높이를 설정합니다.
comboValidation boolean 선택 Enum 타입으로 만들어진 열에 대해 엑셀에서도 데이터 기능을 통해 드롭다운리스트 형태로 표현합니다.
Enum의 종류가 많은 경우 무시됩니다.
reqHeader object 선택 서버 전송 헤더에 사용자가 지정한 헤더 정보를 설정합니다.
useXhr boolean 선택 xhr 통신을 이용해 엑셀 파일을 다운로드받습니다.

Return Value

none

Example

var param = {
        url:"./apex/yearApexDataList.do",
        extendParam:"year=2019&deptNo=0041",
        fileName:"년단위 결산 정보.xlsx"
};
sheet.directDown2Excel(param);
//directDown2Excel 자바 서버모듈 예시
String[] sido = { "서울특별시", "수원시", "성남시" };
String[] sigungu = { "관악구", "팔달구", "분당구" };

List<Map<String, Object>> data = new ArrayList<>();

for (int i = 0; i < sido.length(); i++) {
  Map<String, Object> row = new HashMap<>();

  row.put("sSido", sido[i]);
  row.put("sSiGunGu", sigungu[i]);

  data.add(row);
}

request.setAttribute("SHEETDATA", data);

String forwardPath = "./DirectDown2Excel.jsp";
if (!"".equals(forwardPath)) {
  RequestDispatcher rd = request.getRequestDispatcher(forwardPath);
  rd.forward(request, response);
}
// directDown2Excel 닷넷 서버모듈 예시
// 엑셀로 내려질 데이터를 DB에서 조회 
String connectionString = "Provider=Microsoft.JET.OLEDB.4.0;data source=C:\\mdb\\bussinessList.mdb";
String query = "SELECT * FROM bussinessList";

OleDbConnection conn = new OleDbConnection(connectionString);
OleDbCommand cmd = new OleDbCommand(query, conn);
conn.Open();

OleDbDataReader reader = cmd.ExecuteReader();

// 데이터를 List(Dictionary -> Object)형태로 전환.
// Dictionary 데이터 생성 시 이름은 반드시 시트의 SaveName과 동일 해야 함.
List<Object> li = new List<object>();
while (reader.Read()) {
  Dictionary<String, String> row = new Dictionary<string, string>();
  for (int i = 0; i < reader.FieldCount; i++) {
    row[reader.GetName(i)] = reader.GetValue(i).ToString();
  }

  li.Add(row);
}

reader.Close();
conn.Close();

this.Context.Items["SHEETDATA"] = li; 

// DirectDown2Excel.aspx 페이지로 forwarding             
String forwardPath = "./DirectDown2Excel.aspx"; 
if(forwardPath != "") {
  Server.Execute(forwardPath);
}

Read More

Since

product version desc
excel 0.0.0 기능 추가
excel 0.0.8 reqHeader 기능 추가