# down2Excel (method)

> 시트의 내용을 엑셀 파일로 다운로드 합니다.
> 이 함수는 시트의 내용을 제품과 같이 배포되는 `Down2Excel.jsp` 파일로 전달하고, 이 파일에서 실제 엑셀 파일을 생성하여 클라이언트 측으로 전송하게 됩니다.
> 따라서 해당 함수를 사용하시려면 자바 서버모듈의 경우 `Down2Excel.jsp`와 더불어 `ibsheet8-1.0.x.jar` 파일과 `apache POI 라이브러리`가 필요로 하고, 닷넷 서버모듈의 경우 `Down2Excel.aspx`와 더불어 `IBSheet8-4.0.dll` 파일과 `Syncfusion 라이브러리 dll`가 필요합니다.
> 이 기능을 사용하시려면, 배포시 같이 제공되는 `/plugins/ibsheet-excel.js` 파일을 include 하셔야 합니다.

> `Down2Excel.jsp` 또는 `Down2Excel.aspx` 파일에 대한 경로는 `Cfg`에 `Export` 속성을 통해 설정됩니다.
> 매 시트 생성시 마다 `Export`속성을 설정하기 번거로운 경우에는 IBSheet.CommonOptions 속성을 통해 모든 시트에 공통으로 설정할 수도 있습니다.
> 다시 정리해 보자면 다음과 같은 작업이 필요 합니다.

###

자바 서버모듈

1. `ibsheet8-1.0.x.jar` 파일과 `공통 라이브러리(POI jar)`을 WEB-INF/lib에 추가.
2. `/plugins/ibsheet-excel.js` 파일을 해당 페이지에 include.
3. 시트 생성시 `Cfg`에 `Export` 속성을 통해 `Down2Excel.jsp` 파일에 대한 경로 설정

닷넷 서버모듈

1. `IBSheet8-4.0.dll` 파일과 `공통 라이브러리(Syncfusion dll)`을 bin 또는 참조에 추가.
2. `/plugins/ibsheet-excel.js` 파일을 해당 페이지에 include.
3. 시트 생성시 `Cfg`에 `Export` 속성을 통해 `Down2Excel.aspx` 파일에 대한 경로 설정

다운로드/업로드 관련 기본 정보

### Syntax

    void down2Excel( param );

### Parameters

Name | Type | Required | Description
--- | --- | --- | ---
fileName | `string` | 선택 | 생성할 엑셀파일 명 (`default: "Excel.xlsx"`) 이 속성에서 파일명과 함께 확장자를 xls, xlsx로 붙이느냐에 따라서 생성 파일이 xls형식이나, xlsx형식으로 만들어집니다.
sheetName | `string` | 선택 | 만들어지는 엑셀 파일의 WorkSheet에 부여할 이름
downRows | `string` | 선택 | 지정한 행만 다운로드 합니다. 별도의 설정이 없을시 모든 행이 다운로드 됩니다. 보여지는 행만 다운로드하고 싶을 경우 `"Visible"`로 설정하면 됩니다. (ex: "1|3|4|5|9" 식의 문자열) `downRows`를 사용하면 머지 기능이 동작하지 않습니다.
downCols | `string` | 선택 | 지정한 열만 다운로드 합니다. 별도의 설정이 없을시 모든 열이 다운로드 됩니다. 보여지는 열만 다운로드하고 싶을 경우 `"Visible"`로 설정하면 됩니다. (ex: "Price|AMT|TOTAL" 식의 문자열)
downTreeHide | `boolean` | 선택 | tree를 사용하는 경우, 접혀진 행도 엑셀에 다운로드 할지 여부를 설정합니다. `1(true)`로 설정시 접혀있는 자식노드도 모두 다운로드 됩니다.(`defalut: 0(false)`)
downHeader | `boolean` | 선택 | 헤더행을 다운로드 할지 여부를 설정합니다.(`default: 1(true)`)
sheetDesign | `number` | 선택 | `0`: 셀 외곽선을 제외한 모든 디자인 적용 안함. `1`: 시트의 디자인 요소를 엑셀에도 반영할지 여부를 설정합니다.(`default`) 반영되는 디자인 요소는 다음과 같습니다. 헤더의 배경색,폰트명,폰트크기,데이터 배경색 `2`: 셀 외곽선을 제외한 셀 스타일을 적용. `3`: 셀 외곽선 및 스타일을 모두 적용 안함.
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번째 행부터 시트 내용이 출력됩니다.
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` | 선택 | 엑셀의 헤더행의 높이를 설정합니다.
wordWrap | `boolean` | 선택 | 엑셀 문서의 "텍스트 줄바꿈" 여부를 설정합니다.(`default:1(true)`)
comboValidation | `boolean` | 선택 | Enum 타입으로 만들어진 열에 대해 엑셀에서도 데이터 기능을 통해 드롭다운리스트 형태로 표현합니다. Enum의 종류가 많은 경우 무시됩니다. (`default:0(false)`)
hiddenColumn | `boolean` | 선택 | 시트 내에 감춰진 열을 엑셀에서도 "열 숨기기" 형태로 다운로드 합니다. 해당 기능은 `downCols`와 절대 같이 사용하시면 안됩니다. (`default:0(false)`)
merge | `number` | 선택 | 시트의 머지 상태를 엑셀에 그대로 반영할지를 설정합니다. `0`: 사용 안 함 (`default`) `1`: 사용함 (셀 병합 시, 부속 셀의 값을 원본으로 유지함) `2`: 사용함 (셀 병합 시, 부속 셀의 값을 비움)
allTypeToText | `boolean` | 선택 | 시트의 `Int`, `Float` 타입을 제외한 모든 컬럼을 `Text` 타입으로 받고자 하는 경우 설정합니다.(`default: 0(false)`)
appendPrevSheet | `boolean` | 선택 | down2ExcelBuffer 메소드를 사용하여 2개 이상의 시트를 엑셀로 다운로드 할 때 이전의 시트 내용을 마지막으로 작성한 워크시트에 시트 내용을 덧붙일지 여부를 설정합니다. `0(false)`: 워크시트를 새로 생성하여 작성합니다.(`default`) `1(true)`: 마지막으로 작성한 워크시트에 시트 내용을 덧붙입니다.
checkBoxOnValue | `string` | 선택 | 체크박스와 라디오 박스에서 체크를 한 경우 `1`값 대신 지정한 값을 사용합니다.
checkBoxOffValue | `string` | 선택 | 체크박스와 라디오 박스에서 체크 해제를 한 경우 `0`값 대신 지정한 값을 사용합니다.
downSum | `boolean` | 선택 | 합계 행 다운로드 여부를 설정합니다.(`default: 1(true)`)
excelFontSize | `number` | 선택 | 엑셀의 폰트 크기를 설정합니다.
excludeFooterRow | `boolean` | 선택 | 푸터 행 제외 여부를 설정합니다.(`default: 0(false)`)
numberTypeToText | `boolean` | 선택 | `Int`, `Float` 타입의 컬럼을 `Text` 타입으로 다운로드 받을지 여부를 설정합니다.(`default: 0(false)`)
reqHeader | `object` | 선택 | 서버 전송 헤더에 사용자가 지정한 헤더 정보를 설정합니다.

### `downCols, downRows` 사용시 `merge` 적용 정리

downCols | 화면과 동일하게 컬럼 설정 | 화면과 다르게 컬럼 설정
--- | --- | ---
downRows 사용 | X | X
downRows 사용 안함 | O | 숨겨진 컬럼(`Visible:0`)이 있을 때 전체 컬럼을 다운 받는 경우만 전체 적용 이외에는 행 머지만 적용 됨

### Return Value

none

### Example

    var param = {
      fileName:"홍길동 교통비 내역.xlsx",
      titleText:"||2019년 3월 교통비\r\n|||||||홍길동",
      userMerge:"0,2,1,4"
    };
    sheet.down2Excel(param);

### Read More

- Down2ExcelConfig cfg
- AutoExcelMode cfg
- exportData method
- loadExcel method
- down2Text method
- onBeforeExport event
- onExportFinish event

### Since

product | version | desc
--- | --- | ---
excel | 0.0.0 | 기능 추가
excel | 0.0.8 | `reqHeader` 기능 추가