시트의 내용을 엑셀 파일로 다운로드합니다.
해당 기능은 브라우저에서 처리되는 클라이언트 기능이며, 엑셀 파일 생성을 위해jszip라이브러리를 사용합니다.
/plugins/jszip.min.js파일이 반드시 존재해야 하며, 해당 파일이 없으면 엑셀 다운로드 기능은 동작하지 않습니다.
지원하는 파일 형식은 xlsx, txt, csv 입니다. (구버전xls형식은 지원하지 않습니다.)
워크시트 이름, 폰트, 색상, 머지, 행 높이, 용지 등 서식과 구조에 관한 옵션은xlsx형식에서만 적용되며, 순수 텍스트인txt/csv에는 적용되지 않습니다. (반대로rowDelim/colDelim은txt/csv전용입니다.)
엑셀 다운로드/업로드 구현, 옵션, 트러블슈팅 상세는 IBSheet 지원 포털의 엑셀 가이드 모음에서 확인하세요.
void exportData( param );
| Name | Type | Required | Description |
|---|---|---|---|
| fileName | string |
선택 | 생성할 엑셀파일 명 (default: Excel.xlsx)확장자를 입력하지 않으면 임의의 파일명으로(xlsx) 다운로드 합니다. 확장자를 xlsx, txt, csv로 지정하면 해당 형식으로 다운로드 됩니다.파일 이름에 쓸 수 없는 특수문자( \ / : * ? " < > \|)가 포함되면 다운로드한 파일을 열 때 복구 경고가 뜨거나 손상될 수 있으니 제거하세요. |
| sheetName | string |
선택 | 만들어지는 엑셀 파일의 WorkSheet에 부여할 이름 워크시트 이름에 쓸 수 없는 특수문자( \ / ? * [ ] :)가 포함되면 다운로드한 파일을 열 때 복구 경고가 뜨거나 손상될 수 있으니 제거하세요. |
| downRows | string |
선택 | 지정한 행만 다운로드 합니다. (ex: "1|3|4|5|9" 식의 문자열) 별도의 설정이 없을 시 모든 행이 다운로드 됩니다. 화면에 보이는 행 또는 필터된 행만 포함하고 싶은 경우 "Visible"로 설정하면 됩니다.downRows를 설정하면 데이터 영역의 머지가 적용되지 않습니다(헤더 머지는 유지).데이터 행만 설정할 수 있으며, 데이터 행의 시작 Index는 1부터 시작합니다. |
| downCols | string |
선택 | 지정한 열만 다운로드 합니다. 별도의 설정이 없을시 모든 열이 다운로드 됩니다. 보여지는 열만 다운로드하고 싶을 경우 "Visible"로 설정하면 됩니다.(ex: "Price|AMT|TOTAL" 식의 문자열) 지정한 순서는 무시되고 시트의 원래 컬럼 순서로 출력됩니다. |
| downTreeHide | boolean |
선택 | tree를 사용하는 경우, 접혀진 행도 엑셀에 다운로드 할지 여부를 설정합니다.1(true)로 설정시 접혀있는 자식노드도 모두 다운로드 됩니다.(default: 0(false)) |
| downHeader | boolean |
선택 | 헤더행을 다운로드 할지 여부를 설정합니다.(default: 1(true)) |
| sheetDesign | number |
선택 | 시트에 적용된 디자인 요소를 엑셀에도 반영할지 여부를 설정합니다. main.css 스타일뿐 아니라 setAttribute로 지정한 Color/TextColor도 반영됩니다. 반영되는 디자인 요소는 다음과 같습니다. 헤더의 배경색( main.css 파일에 설정한 IBCellHeader class 속성값), 헤더의 폰트 색상(main.css 파일에 설정한 IBHeaderText class 속성값), 폰트명(main.css 파일에 설정한 IBMain class 속성값, excelFontFamily로 재지정 가능), 폰트크기(main.css 파일에 설정한 .IBMain, .IBMain * 값, excelFontSize 속성으로 재지정 가능), 데이터 배경색 0: 셀 외곽선을 제외한 모든 디자인을 적용하지 않습니다.1: 셀 외곽선을 포함해 모든 디자인을 적용합니다. (default) 2: 셀 외곽선을 제외한 셀 스타일을 적용합니다. 3: 셀 외곽선 및 스타일을 모두 적용하지 않습니다. 4: 헤더행에만 모든 디자인을 적용합니다. |
| userMerge | string |
선택 | titleText와 같이 사용하며, titleText를 원하는 모양으로 머지합니다.입력방법은 4개의 숫자로 "머지시작셀 row index, 머지시작셀 col index, 아래로 병합할 행 개수(1을 설정하면 병합 없음), 우측으로 병합할 개수" 로 이루어 집니다. (여러개 병합시에는 띄어쓰기로 구분) 가령 "2,2,1,6 3,2,3,3"위와 같이 설정하였다면,2,2 셀부터 오른쪽으로 6칸이 병합되고, 3,2 셀부터 아래로 3칸, 오른쪽으로 3칸이 병합 됩니다. ![]() |
| excelRowHeight | number |
선택 | 엑셀 문서의 행 높이를 설정합니다. -1 설정시 셀의 내용물 크기에 맞춰 엑셀 문서의 행 높이가 조절됩니다. |
| excelHeaderRowHeight | number |
선택 | 엑셀의 헤더행의 높이를 설정합니다. |
| wordWrap | boolean |
선택 | 엑셀 문서의 "텍스트 줄바꿈" 여부를 설정합니다. ( default: 1(true)) |
| comboValidation | boolean |
선택 | Enum 타입으로 만들어진 열에 대해 엑셀에서도 데이터 기능을 통해 드롭다운리스트 형태로 표현합니다. |
| rowDelim | string |
선택 | text파일을 만들때 행 구분자(기본은 줄넘김 문자 "\r\n")(txt, csv)에서만 지원 |
| colDelim | string |
선택 | txt 다운로드 일 경우(default: \t(탭문자)csv 다운로드 일 경우( default: ,(콤마)) 업로드되는 파일에 따라 기본 구분자가 변경됩니다. (txt, csv)에서만 지원 |
| hiddenColumn | boolean |
선택 | 숨은 컬럼들을 엑셀로 다운로드 받은 경우, 해당 컬럼이 눈에 보이지는 않지만 엑셀 메뉴중 "숨기기 취소"를 선택한 경우 해당 컬럼이 다시 보일 수 있도록 엑셀 문서에 다운로드 받는다. hiddenColumn:1 은 downCols와 절대 같이 사용하시면 안됩니다.0(false): 엑셀 다운로드 시 감춰진 열도 Visible:1 컬럼과 동일하게 일반 컬럼처럼 표현됨 (default)1(true):감춰진 열 다운로드 시 "열 숨기기" 형태로 엑셀 다운로드 |
| merge | number |
선택 | 시트의 머지 상태를 엑셀에 그대로 반영할지를 설정합니다.0: 사용 안 함 (default)1: 사용함 (셀 병합 시, 부속 셀의 값을 원본으로 유지함)2: 사용함 (셀 병합 시, 부속 셀의 값을 비움) |
| textToGeneral | boolean |
선택 | Type:Text의 엑셀 서식 형식0(false): Type:Text의 엑셀 서식을 텍스트 서식으로 지정 1(true): Type:Text의 엑셀 서식을 일반 서식으로 지정(default) |
| allTypeToText | boolean |
선택 | 시트의 Int, Float 타입을 제외한 모든 컬럼의 엑셀 서식을 Text 타입으로 받고자 하는 경우 설정합니다.( default: 0(false)) |
| 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)) |
| excelFontFamily | string |
선택 | 엑셀의 폰트를 설정합니다. |
| exHead | array[object] |
선택 | 시트 상단에 표시하고 싶은 내용을 설정합니다. titleText 속성과 같이 사용할 수 없으며, 같이 사용시 titleText속성은 무시됩니다. ex) 첫번째 행의 높이를 30, 첫번째 셀 텍스트를 지정 exHead:[{Height:30, Cells:[{Value:"부서"}]}] |
| exFoot | array[object] |
선택 | 시트 하단에 표시하고 싶은 내용을 설정합니다. ex) 시트 하단의 첫번째 행 높이를 30, 첫번째 셀 텍스트를 지정 exFoot:[{Height:30, Cells:[{Value:"출력: 2023-06-23 홍길동"}]}] |
| appendPrevSheet | boolean |
선택 | exportDataBuffer 메소드를 사용하여 2개 이상의 시트를 엑셀로 다운로드 할 때 마지막으로 작성한 워크시트에 해당 옵션이 적용된 시트를 덧붙일지 여부를 설정합니다. 0(false): 워크시트를 새로 생성하여 작성합니다.(default) 1(true): 마지막으로 작성한 워크시트에 시트를 덧붙입니다. |
| onlyHeaderMerge | boolean |
선택 | 1(true)로 설정 시, 시트의 데이터 영역의 머지를 강제로 제한하고 헤더 영역의 머지만을 엑셀에 반영합니다.(default: 0(false)) |
| freezePane | number |
선택 | 상단 행과 왼쪽 열을 틀 고정하여 다운로드하는 옵션입니다. 옵션 설정에 따라 다르게 틀 고정이 적용되어 다운로드되며, 비트 연산으로 동작합니다. 0: 틀 고정을 적용하지 않음(default) 1: 헤더 틀 고정 적용 (2과 함께 적용시 헤드 영역 틀 고정으로 동작) 2: 헤드 영역 틀 고정 적용 4: 왼쪽 고정 열 틀 고정 적용 |
| numberFormatMode | number |
선택 | 실수 형태의 데이터 타입에 대한 셀 서식 설정 방식을 설정합니다.0:시트의 컬럼 포맷을 따릅니다. (default)1:셀의 값 기준에 따라 정수 또는 실수 형태로 셀 서식을 설정합니다.2:일반 서식으로 설정합니다. |
| excelPage | object |
선택 | 엑셀 용지에 대한 동작을 설정합니다 ex)엑셀 용지설정(가로방향) excelPage: { orientation: "landscape" } |
| widthRate | number |
선택 | 엑셀 다운로드 시 열 너비에 곱해질 배율을 설정합니다.0보다 큰 양수 값을 사용합니다. (예: 0.5 → 기본 크기의 절반, 0.8 → 80%, 1.3 → 130%)지정하지 않거나 0 이하 값을 지정하면 1(기본 다운로드 크기)로 적용됩니다.( default: 1) |
| escapeCsvInjection | boolean |
선택 | CSV 다운로드 시 CSV 인젝션(수식 인젝션) 방어를 활성화합니다. csv 형식에서만 동작하며, 그 외 형식(xlsx, txt)에서는 값과 무관하게 무시됩니다.1(true)로 설정하면 위험 선두 문자로 시작하는 문자열 셀 값 앞에 작은따옴표(')를 붙여 스프레드시트가 값을 수식이 아닌 텍스트로 인식하도록 강제합니다.방어 대상 선두 문자: =, +, -, @, 탭(\t), CR(\r), LF(\n), \|, %0(false):방어 미적용, 셀 값을 원본 그대로 CSV에 기록 (default)1(true):위험 선두 문자로 시작하는 값에 ' prefix 부여사용자 입력이 그대로 CSV로 내려가고, 그 파일을 제3자가 열 가능성이 있는 화면에서 켜는 것을 권장합니다. (csv에서만 지원) |
merge 옵션을 켜도 행이나 열을 일부만 다운로드하면 머지가 그대로 적용되지 않을 수 있습니다.
downRows로 행을 일부만 받으면 데이터 영역의 머지가 적용되지 않습니다. (헤더 머지는 유지)downCols로 열을 받을 때는 머지된 컬럼을 모두 포함해야 그 머지가 유지됩니다. 지정한 순서는 무시되고 시트의 원래 컬럼 순서로 출력되므로, 순서 때문에 머지가 깨지지는 않습니다.
예를 들어 위 "머지 컬럼"을 머지된 채로 다운로드받으려면 downCols: "컬럼1|컬럼2|컬럼3|컬럼4"처럼 머지된 컬럼을 모두 포함합니다.
| Name | Type | Required | Description |
|---|---|---|---|
| paperSize | string |
선택 | 용지 크기를 설정합니다. 설정하지 않을 경우 기본 A4로 다운로드 됩니다. (default: "A4") |
| orientation | string |
선택 | 용지 방향을 설정합니다. 세로: "portrait", 가로: "landscape" ( default: "portrait") |
| marginLeft | number |
선택 | 용지 왼쪽의 여백을 설정합니다. (default: 1.8) |
| marginRight | number |
선택 | 용지 오른쪽의 여백을 설정합니다. (default: 1.8) |
| marginTop | number |
선택 | 용지 위쪽의 여백을 설정합니다. (default: 1.9) |
| marginBottom | number |
선택 | 용지 아래쪽의 여백을 설정합니다. (default: 1.9) |
| marginHeader | number |
선택 | 용지 머리글의 여백을 설정합니다. (default: 0.8) |
| marginFooter | number |
선택 | 용지 바닥글의 여백을 설정합니다. (default: 0.8) |
| fitToWidth | number |
선택 | 페이지 레이아웃의 너비를 설정합니다. (default: 0) |
| fitToHeight | number |
선택 | 페이지 레이아웃의 높이를 설정합니다. (default: 0) |
| Name | Type | Required | Description |
|---|---|---|---|
| Height | number |
선택 | 행의 높이 |
| Cells | array[object] |
선택 | 행의 각셀에 표시될 내용,속성 설정 |
| Cells[{Value}] | string |
선택 | 셀에 표시될 내용 |
| Cells[{Color}] | string |
선택 | 셀의 배경색 (ex #FFDDEE) |
| Cells[{TextColor}] | string |
선택 | 셀의 글자색 (ex #446622) |
| Cells[{TextSize}] | number |
선택 | 셀의 글자 크기 |
| Cells[{TextStyle}] | number |
선택 | 셀의 글자 style (참고) |
| Cells[{TextFont}] | string |
선택 | 셀의 글자 family (참고) |
| Cells[{Wrap}] | boolean |
선택 | 자동 줄바꿈 여부(default: true) |
| Cells[{Type}] | string |
선택 | 셀타입(Image를 사용해야 하는 경우에만 Img로 설정) |
| Cells[{ColSpan}] | number |
선택 | 가로 병합 셀 개수(default: 1) |
| Cells[{RowSpan}] | number |
선택 | 세로 병합 셀 개수(default: 1) |
| Cells[{BorderTop}] | string |
선택 | 상단 보더 굵기,스타일,색상을 구분자 " "로 연결한 문자열(ex: "1 solid #FF0000") |
| Cells[{BorderBottom}] | string |
선택 | 하단 보더 굵기,스타일,색상을 구분자 " "로 연결한 문자열(ex: "1 solid #FF0000") |
| Cells[{BorderLeft}] | string |
선택 | 좌측 보더 굵기,스타일,색상을 구분자 " "로 연결한 문자열(ex: "1 solid #FF0000") |
| Cells[{BorderRight}] | string |
선택 | 우측 보더 굵기,스타일,색상을 구분자 " "로 연결한 문자열(ex: "1 solid #FF0000") |
solid,dashed,dotted 제공 #FF00FF)none
// xlsx 확장자로 다운로드, 보여지는 행만 다운로드.
sheet.exportData({fileName: "재고리스트.xlsx",downRows: "Visible"});
// txt 확장자로 다운로드, 열 구분자 ',' 로 변경.
var param = {fileName: "exportTEXT.txt", colDelim: ","};
sheet.exportData(param);
// csv 확장자로 다운로드, 합계행 다운받지 않음.
var param = {fileName: "exportCSV.csv", downSum: 0}
sheet.exportData(param);
// csv 다운로드 + CSV 인젝션 방어.
// 셀 값이 `=1+1`, `+82-10-...`, `@SUM(...)`처럼 위험 선두 문자로 시작하면
// 파일에 `'`가 prefix되어 저장되고, 엑셀에서 텍스트로 표시됩니다.
sheet.exportData({fileName: "safe.csv", escapeCsvInjection: 1});
//exHead 사용 예제
var param = {
sheetDesign: 1,
merge: 1,
fileName: '22년도_근무외수당.xlsx'
};
param["exHead"] = [
{ // 첫번째 행
Height: 30,
Cells:[
{
// 첫번째 셀에 이미지 설정
Type:"Img",
Value:"|/assets/imgs/logo.png|78|28"
},
{},{},{},{},{},{},{}, //7칸 빈셀
{
Type:"Text",
Value:"(취급주의)대외비",
TextColor:"#FF0000",
Wrap: 0,
TextSize: 14
}
]
},
{ // 두번째 행
Height: 40,
Cells:[
{}, //첫칸 빈셀
{
Type:"Text",
Align: "Center",
Value: "2022년 근무 외 수당 청구 내역",
Color:"#DEDEDE",
TextSize: 45,
TextStyle: 1,
BorderTop:"2 dashed #0000FF",
BorderBottom:"2 dashed #0000FF",
BorderLeft:"2 dashed #0000FF",
ColSpan: 8
},
{
BorderTop:"2 dashed #0000FF",
BorderBottom:"2 dashed #0000FF"
},
{
BorderTop:"2 dashed #0000FF",
BorderBottom:"2 dashed #0000FF"
},
{
BorderTop:"2 dashed #0000FF",
BorderBottom:"2 dashed #0000FF"
},
{
BorderTop:"2 dashed #0000FF",
BorderBottom:"2 dashed #0000FF"
},
{
BorderTop:"2 dashed #0000FF",
BorderBottom:"2 dashed #0000FF"
},
{
BorderTop:"2 dashed #0000FF",
BorderBottom:"2 dashed #0000FF"
},
{
BorderTop:"2 dashed #0000FF",
BorderBottom:"2 dashed #0000FF",
BorderRight:"2 dashed #0000FF"
}
]
},
{}, // 3번째 행 (빈행)
{// 4번째 행
Cells:[
{
Value:"부서",
Align:"Right",
Color:"#DEDEDE",
BorderTop:"1 solid #222222",
BorderRight:"1 solid #222222",
BorderBottom:"1 solid #222222",
BorderLeft:"1 solid #222222",
},{
ColSpan: 3,
Value:"총무부",
Align:"Left",
BorderTop:"1 solid #222222",
BorderRight:"1 solid #222222",
BorderBottom:"1 solid #222222",
BorderLeft:"1 solid #222222",
},
{
BorderTop:"1 solid #222222",
BorderBottom:"1 solid #222222"
},
{
BorderTop:"1 solid #222222",
BorderBottom:"1 solid #222222",
BorderRight:"1 solid #222222"
}
]
},
{// 5번째 행
Cells:[
{
Value:"기간",
Align:"Right",
Color:"#DEDEDE",
BorderTop:"1 solid #222222",
BorderRight:"1 solid #222222",
BorderBottom:"1 solid #222222",
BorderLeft:"1 solid #222222",
},
{
ColSpan: 3,
Value:"2022/01/01 ~ 2022/12/31",
Align:"Left",
BorderTop:"1 solid #222222",
BorderBottom:"1 solid #222222",
BorderLeft:"1 solid #222222",
},
{
BorderTop:"1 solid #222222",
BorderBottom:"1 solid #222222"
},
{
BorderTop:"1 solid #222222",
BorderBottom:"1 solid #222222",
BorderRight:"1 solid #222222"
}
]
}
];
param["exFoot"] = [
{}, //첫번째 행 (빈행)
{
Height:30,
Cells:[
{
Value: "출력: 2023-06-23 홍길동",
Align: "Left",
Wrap: 0
}
]
}
];
sheet.exportData(param);

| product | version | desc |
|---|---|---|
| core | 8.0.0.0 | 기능 추가 |
| core | 8.0.0.6 | fileName, sheetName, downRows, downCols, downRows, downTreeHide, downHeader, sheetDesign, titleText, userMerge, excelRowHeight, excelHeaderRowHeight, wordWrap, comboValidation, rowDelim, colDelim, downSum 기능 추가 |
| core | 8.0.0.20 | 파일 형식 내용 추가 |
| core | 8.0.0.21 | merge, allTypeToText, checkBoxOnValue, checkBoxOffValue, excelFontSize, excludeFooterRow, numberTypeToText (xlsx 에서만 지원) |
| core | 8.0.0.29 | excelFontFamily 기능 추가 (xlsx 에서만 지원) |
| core | 8.1.0.30 | exHead,exFoot 기능 추가 (xlsx 에서만 지원) |
| core | 8.1.0.39 | excelRowHeight : -1 설정 추가 |
| core | 8.1.0.41 | sheetDesign : 4 설정 추가 |
| core | 8.1.0.83 | appendPrevSheet 설정 추가 (exportDataBuffer 사용시에만 사용 가능) |
| core | 8.2.0.5 | onlyHeaderMerge 설정 추가 |
| core | 8.2.0.11 | hiddenColumn 설정 추가 |
| core | 8.2.0.25 | freezePane 설정 추가 |
| core | 8.3.0.16 | numberFormatMode 설정 추가 |
| core | 8.4.0.7 | widthRate 설정 추가 |
| core | 8.4.0.10 | escapeCsvInjection 설정 추가 (csv 형식 전용) |