[]
        
(Showing Draft Content)

SpreadJS 파일 형식

SpreadJS는 사용자가 대용량 파일을 빠르게 열고 저장할 수 있도록 하며, Excel, CSV, SSJSON(이전 SpreadJS 형식), SJS(새롭고 더 빠른 SpreadJS 형식) 등 다양한 파일 형식으로 내보내기 또는 가져오기를 지원합니다. 특히, 새로운 SJS 형식은 매우 큰 Excel 파일을 다룰 때 로딩 속도와 메모리 사용량을 크게 개선하며, 이전 SpreadJS 버전에 비해 파일을 다시 저장할 경우 파일 크기를 현저히 줄여줍니다.

다양한 형식으로 파일을 열고 저장하고, 가져오고 내보내는 작업을 수행하기 위해 SpreadJS는 gc.spread.sheets.io.xxx.js 플러그인을 제공합니다.

GC.Spread.Sheets.Workbook 클래스는 다음과 같은 파일 작업 메서드를 제공합니다:

메서드

설명

open

SpreadJS 파일을 로드합니다.

save

SpreadJS 파일을 저장합니다.

export

Excel, SSJSON, SJS 또는 CSV 형식으로 파일을 내보냅니다.

import

Excel, SSJSON, SJS, CSV 또는 JavaScript 형식의 파일을 가져옵니다.

다음 섹션에서는 다양한 파일 작업을 자세히 살펴보겠습니다.

파일 열기

open 메서드를 사용하여 SpreadJS 파일을 로드할 수 있습니다. 이 메서드는 다음과 같은 파라미터를 사용합니다:

  • file blob: 압축된 스프레드시트 데이터 파일을 나타냅니다.

  • successCallBack: 파일 로딩이 완료되었을 때 호출되는 콜백 함수이며, 인자로 JSON 데이터를 받습니다.

  • errorCallBack: 파일 로딩 중 오류가 발생했을 때 호출되는 콜백 함수입니다.

  • openOptions: GC.Spread.Sheets.OpenOptions 타입에서 상속된 옵션 객체입니다.

주요 Open 옵션

옵션

설명

includeStyles

로드 시 스타일을 포함할지 여부를 나타냅니다. 기본값은 true입니다.

includeFormulas

로드 시 수식을 포함할지 여부를 나타냅니다. 기본값은 true입니다.

fullRecalc

JSON 데이터를 로드한 후 계산을 수행할지 여부를 나타냅니다. 기본값은 true입니다.

dynamicReferences

동적 참조를 사용하여 함수가 계산될 수 있는지 여부를 나타냅니다. 기본값은 true입니다.

calcOnDemand

수식이 필요할 때만 계산될 수 있는지 여부를 나타냅니다. 기본값은 true입니다.

includeUnusedStyles

Excel XML 파일을 JSON으로 변환할 때 이름 스타일을 포함할지 여부를 나타냅니다. 기본값은 true입니다.

openMode

GC.Spread.Sheets.OpenMode 열거형에서 상속됩니다.

열기 모드가 일반(normal), 지연(lazy), 점진적(incremental) 중 어떤 것인지 지정합니다. 기본값은 normal입니다.

progress

GC.Spread.Sheets.ProgressFunctionType 타입 정의에서 상속되며, 각 열기 모드에서 호출되는 진행 상황 콜백 함수입니다.

다음 코드 구현은 파일 열기 작업을 수행하는 방법을 보여줍니다:

Ask ChatGPT

//open 메서드 사용 예제.
//file blob 가져오기 
var file = document.getElementById("fileInput").files[0];
// 가져오기
spread.open(file, function () {
    // 성공 콜백
}, function (e) {
    console.log(e); // error 콜백
}, {
    lazyLoad: true,
    includeFormulas: false,
    includeStyles: false
});

파일 저장

SpreadJS 파일은 save 메서드를 사용하여 저장할 수 있으며, 이 메서드는 다음과 같은 매개변수를 제공합니다:

  • successCallBack: SpreadJS 파일이 완전히 저장되었을 때 호출되는 성공 콜백 함수이며, Blob을 인자로 받습니다.

  • errorCallBack: SpreadJS 파일 저장 중 오류가 발생했을 때 호출되는 오류 콜백 함수입니다.

  • saveOptions: GC.Spread.Sheets.SaveOptions 타입 정의에서 상속되며, 저장 옵션을 제공합니다.

다음은 다양한 저장 옵션입니다:


저장 옵션

설명

includeBindingSource

파일 저장 시 바인딩 소스를 포함할지 여부를 나타냅니다. 기본값은 false입니다.

includeStyles

파일 저장 시 스타일을 포함할지 여부를 나타냅니다. 기본값은 true입니다.

includeFormulas

파일 저장 시 수식을 포함할지 여부를 나타냅니다. 기본값은 true입니다.

saveAsView

저장된 파일이 현재 스프레드의 서식 문자열을 무시할지 여부를 나타냅니다. 기본값은 false입니다.

includeAutoMergedCells

파일 저장 시 자동 병합된 셀을 포함할지 여부를 나타냅니다. 기본값은 false입니다.

includeCalcModelCache

파일 저장 시 계산 관련 추가 데이터를 포함할지 여부를 나타냅니다. 기본값은 true입니다.

includeUnusedNames

파일 저장 시 사용되지 않는 사용자 정의 이름을 포함할지 여부를 나타냅니다. 기본값은 true입니다.

includeEmptyRegionCells

사용된 데이터 범위 외의 빈 셀을 포함할지 여부를 나타냅니다. 기본값은 true입니다.

saveR1C1Formula

파일에 r1c1 수식을 저장할지 여부를 나타냅니다. 기본값은 false입니다.

다음 코드 구현은 파일 저장 작업을 수행하는 방법을 보여줍니다:

var fileName = "fileNamehere.sjs";
spread.save(function (blob) {
    // blob을 파일로 저장
    saveAs(blob, fileName);
}, function (e) {
    console.log(e);
}, {
    includeUnusedNames: false,
    includeEmptyRegionCells: false
    saveR1C1Formula: true
});

파일 내보내기

Spread에서는 파일을 Excel, SSJSON, SJS 또는 CSV 형식으로 내보낼 수 있습니다.

export 메서드는 다음과 같은 매개변수를 제공합니다:

  • successCallBack: 파일 내보내기가 완료되었을 때 호출되는 성공 콜백 함수이며, Blob을 인자로 받습니다.

  • errorCallBack: 파일 내보내기 중 오류가 발생했을 때 호출되는 오류 콜백 함수입니다.

  • saveOptions: GC.Spread.Sheets.ExportOptions 타입 정의에서 상속되며, 내보내기 옵션을 제공합니다.

다음은 다양한 내보내기 옵션입니다:

옵션

설명

FileOptions

GC.Spread.Sheets.FileType 타입 정의에서 상속되며, 다양한 파일 형식을 제공합니다.

ExportCsvOptions

GC.Spread.Sheets.ExportCsvOptions에서 상속되며, CSV 형식으로 내보내는 데 사용할 수 있는 옵션을 제공합니다.

ExportSSJsonOptions

GC.Spread.Sheets.ExportSSJsonOptions에서 상속되며, SSJSON 형식으로 내보내는 데 사용할 수 있는 옵션을 제공합니다.

ExportXlsxOptions

GC.Spread.Sheets.ExportXlsxOptions에서 상속되며, Excel 형식으로 내보내는 데 사용할 수 있는 옵션을 제공합니다.

다음 코드 구현은 파일 내보내기 작업을 수행하는 방법을 보여줍니다:


var fileName = "fileNamehere.sjs";           
spread.export(function (blob) {
    // blob을 파일로 저 saveAs(blob, fileName);
}, function (e) {
    console.log(e);
}, {
    fileType: GC.Spread.Sheets.FileType.sjs,
    includeBindingSource: true
});

파일 가져오기

Spread에서는 Excel, SSJSON, SJS 또는 CSV 형식의 파일도 가져올 수 있습니다.

import 메서드는 다음과 같은 매개변수를 제공합니다:

  • file: 가져올 SSJSON, SJS, CSV 또는 Excel 파일입니다.

  • successCallBack: 파일 가져오기가 완료되었을 때 호출되는 성공 콜백 함수입니다.

  • errorCallBack: 파일 가져오기 중 오류가 발생했을 때 호출되는 오류 콜백 함수입니다.

  • importOptions: GC.Spread.Sheets.ImportOptions 타입 정의에서 상속되며, 가져오기 옵션을 제공합니다.

다음은 다양한 가져오기 옵션입니다:

옵션

설명

FileOptions

GC.Spread.Sheets.FileType 타입 정의에서 상속되며, 다양한 파일 형식을 제공합니다.

ImportCsvOptions

GC.Spread.Sheets.ImportCsvOptions에서 상속되며, CSV 형식에서 파일을 가져올 때 사용할 수 있는 옵션을 제공합니다.

ImportSSJsonOptions

GC.Spread.Sheets.ImportSSJsonOptions에서 상속되며, SSJSON 형식에서 파일을 가져올 때 사용할 수 있는 옵션을 제공합니다.

ImportXlsxOptions

GC.Spread.Sheets.ImportXlsxOptions에서 상속되며, Excel 형식에서 파일을 가져올 때 사용할 수 있는 옵션을 제공합니다.

다음 코드 구현은 파일 가져오기 작업을 수행하는 방법을 보여줍니다:

//file blob 가져오기.
var file = document.getElementById("fileInput").files[0];
// import
spread.import(file, function () {
    // 성공 콜백
}, function (e) {
    console.log(e); // error 콜백
}, {
    fileType: GC.Spread.Sheets.FileType.excel
});