시트에 조회된 데이터는 무시하고, 헤더 정보만 서버로 전송하여, 서버에서 만든 데이터와 결합해 엑셀파일을 생성/다운로드 하는 기능입니다.
이 기능은 조회된 데이터가 많아 이를 엑셀로 다운로드 시키기에는 서버측에 부하가 예상되는 경우 사용하는 기능으로, 서버측에서는 별도로 조회 데이터에 해당하는 내용을
List<Map>
구조로 생성하여 데이터를SHEETDATA
라는 이름으로request
객체에 담은 뒤,DirectDown2Excel.jsp
또는DirectDown2Excel.aspx
파일로forward
해 주셔야 합니다.엑셀파일이 다운로드 되는 과정은 아래와 같습니다.
따라서 해당 함수를 사용하시려면 자바 서버모듈의 경우
DirectDown2Excel.jsp
와 더불어ibsheet8-1.0.x.jar
파일과apache POI 라이브러리
가 필요하고, 닷넷 서버모듈의 경우DirectDown2Excel.aspx
와 더불어IBSheet8-4.0.dll
파일과Syncfusion 라이브러리 dll
이 필요합니다.
그리고 import/export 관련 기능을 사용하시려면, 배포시 같이 제공되는/plugins/ibsheet-excel.js
파일을 include 하셔야 합니다.
void directDown2Excel( param );
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칸이 병합 됩니다. ![]() |
excelRowHeight | number |
선택 | 엑셀 문서의 행 높이를 설정합니다. |
excelHeaderRowHeight | number |
선택 | 엑셀의 헤더행의 높이를 설정합니다. |
comboValidation | boolean |
선택 | Enum 타입으로 만들어진 열에 대해 엑셀에서도 데이터 기능을 통해 드롭다운리스트 형태로 표현합니다. Enum의 종류가 많은 경우 무시됩니다. |
reqHeader | object |
선택 | 서버 전송 헤더에 사용자가 지정한 헤더 정보를 설정합니다. |
useXhr | boolean |
선택 | xhr 통신을 이용해 엑셀 파일을 다운로드받습니다. |
none
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);
}
product | version | desc |
---|---|---|
excel | 0.0.0 | 기능 추가 |
excel | 0.0.8 | reqHeader 기능 추가 |