down2Text (method)

시트의 내용을 txt 또는 csv 파일로 다운로드합니다.
사용 전 서버모듈 설치/plugins/ibsheet-excel.js 스크립트 로드가 필요합니다.
이 함수를 호출하면 Cfg.Export 속성에 지정한 Down2Text.jsp(또는 Down2Text.aspx)가 호출되며, 이 jsp 파일이 시트 정보(컬럼 정의 등)와 데이터를 받아 텍스트 파일을 생성해 클라이언트로 전송합니다.
시트마다 반복 설정이 번거로우면 IBSheet.CommonOptions로 공통 적용할 수 있습니다.

Syntax

void down2Text( param );

Parameters

Name Type Required Description
fileName string 선택 다운로드 받을 파일명입니다. 확장자를 설정하지 않으면 txt 파일로 다운로드 됩니다.
rowDelim string 선택 text파일을 만들때 행 구분자(기본은 줄넘김 문자: "\r\n")
colDelim string 선택 txt 다운로드 일 경우(default: \t(탭문자), csv 다운로드 일 경우(default: ,(콤마) 업로드되는 파일에 따라 기본 구분자가 변경됩니다.
downRows string 선택 다운로드 받을 행 인덱스(구분자 "|"로 연결 ex: "1|3|4|5|7")
downCols string 선택 다운로드 받을 열 Name(구분자 "|"로 연결 ex: "amt|qty1|qty2|qty3|years")
downHeader boolean 선택 헤더행을 다운로드 받을지 여부
0(false):다운로드 시 헤더행 미포함
1(true):다운로드 시 헤더행 포함 (default)
downSum boolean 선택 합계행도 다운로드 받을지 여부
0(false):합계 행 다운로드 시 미포함
1(true):합계 행 다운로드 시 포함 (default)
downTreeHide boolean 선택 tree를 사용하는 경우, 접혀진 행도 엑셀에 다운로드 할지 여부를 설정합니다.
0(false):접혀진 행(자식노드)들 다운로드 대상 제외 (default)
1(true):접혀진 행(자식노드)들 다운로드 대상 포함
reqHeader object 선택 서버 전송 헤더에 사용자가 지정한 헤더 정보를 설정합니다.
downloadEncoding string 선택 다운로드받는 텍스트 파일의 인코딩 형식을 지정합니다. UTF-8(BOM) 설정시 BOM을 삽입한 UTF-8 인코딩 형식으로 텍스트 파일을 다운로드합니다. (default: "txt: UTF-8, csv: EUC-KR")
extendParam string 선택 서버로 전달해야 하는 내용이 있는 경우 GET 방식의 QueryString으로 연결하여 서버로 같이 전달됩니다.
(ex: sheet.down2Excel({extendParam: "sido=서울시&sigungu=관악구"})
extendParamMethod string 선택 extendParam의 내용을 GET 또는 POST로 전달할지를 설정합니다.(default: "GET")
useXhr boolean 선택 xhr 통신을 이용해 파일을 다운로드받습니다.
0(false):xhr 통신 사용 안함 (default)
1(true):xhr 통신 사용
escapeCsvInjection boolean 선택 CSV 다운로드 시 CSV 인젝션(수식 인젝션) 방어를 활성화합니다. csv 형식에서만 동작하며, txt에서는 값과 무관하게 무시됩니다.
1(true)로 설정하면 위험 선두 문자로 시작하는 문자열 셀 값 앞에 작은따옴표(')를 붙여 스프레드시트가 값을 수식이 아닌 텍스트로 인식하도록 강제합니다.
방어 대상 선두 문자: =, +, -, @, 탭(\t), CR(\r), LF(\n), \|, %
0(false):방어 미적용, 셀 값을 원본 그대로 CSV에 기록 (default)
1(true):위험 선두 문자로 시작하는 값에 ' prefix 부여
사용자 입력이 그대로 CSV로 내려가고, 그 파일을 제3자가 열 가능성이 있는 화면에서 켜는 것을 권장합니다. (csv에서만 지원)

Return Value

none

Example

//1. text 확장자로 다운로드
sheet.down2Text({fileName:"yearsProfit.txt"});


//2. csv 확장자로 다운로드
sheet.down2Text({fileName:"yearsProfit.csv", colDelim:","});

//3. csv 다운로드 + CSV 인젝션 방어
//   셀 값이 `=1+1`, `+82-10-...`, `@SUM(...)`처럼 위험 선두 문자로 시작하면
//   파일에 `'`가 prefix되어 저장되고, 엑셀에서 텍스트로 표시됩니다.
sheet.down2Text({fileName:"safe.csv", escapeCsvInjection: 1});

downloadEncoding 설정시 유의사항

downloadEncoding_utf_8

downloadEncodingUTF-8로 설정해 csv 파일을 다운로드하시면 엑셀로 열였을 때 한글이 깨지는 현상이 발생합니다.
엑셀로 열었을 때 한글이 깨지는 현상을 예방하면서 UTF-8 인코딩을 적용하기 위해서는 downloadEncodingUTF-8(BOM)으로 설정해주세요 (서버모듈 1.1.18 버전 이후 설정 가능).

csv 다운로드시 기본 인코딩에 관해

엑셀 플러그인 1.0.21 버전 이후로 csv 다운로드시 기본 인코딩 형식이 EUC-KR에서 UTF-8(BOM)으로 변경되었습니다.
그런데 해당 인코딩 형식은 서버모듈 1.1.18 버전 이후로 지원되는 형식이기에, 엑셀 플러그인 1.0.21 버전을 사용하시며 down2Text 기능을 사용하시려면 반드시 서버모듈 버전을 1.1.18 버전 이후의 버전으로 업그레이드하시거나 downloadEncoding 옵션을 UTF-8(BOM) 이외의 값으로 별도 설정해주셔야 됩니다.

Read More

Since

product version desc
excel 0.0.0 기능 추가
excel 0.0.8 reqHeader 기능 추가
servermodule 1.1.18 downloadEncoding: UTF-8(BOM) 설정 추가
excel 1.0.21 csv 다운로드시 디폴트 인코딩 형식 EUC-KR에서 UTF-8(BOM)으로 변경
excel 1.1.38 escapeCsvInjection 설정 추가 (csv 형식 전용)
servermodule 2.1.4 escapeCsvInjection 설정 추가 (csv 형식 전용)