[]
        
(Showing Draft Content)

UMD 지원

SpreadJS는 어디서나 작동하는 JavaScript 모듈을 위한 UMD(Universal Module Definition) 패턴을 지원합니다.


일반적으로 SpreadJS의 UMD 패턴은 AMD(Asynchronous Module Definition)와 CommonJS를 지원합니다. 이들은 개발자가 모듈 방식으로 코드를 작성할 수 있도록 하는 모듈 규격입니다. UMD 패턴을 사용한 모듈 프로그래밍은 코드 재사용성을 높일 뿐만 아니라 코드 효율성도 향상시켜 많은 시간과 자원을 절약할 수 있습니다. 이와 더불어, 자바스크립트 코드를 특정 순서로 작성해야 하는 의존성 없이도 흔히 발생하는 프로그래밍 문제에 대한 해결책을 제공하는 데 도움을 줍니다.


SpreadJS에서는 다음 여섯 개의 JavaScript 파일에 대해 UMD 패턴을 지원합니다:

  1. gc.spread.sheets.all.xxx.js

  2. gc.spread.sheets.print.xxx.js

  3. gc.spread.sheets.pdf.xxx.js

  4. gc.spread.sheets.charts.xxx.js

  5. gc.spread.sheets.resources.xx.xxx.js

  6. gc.spread.excelio.xxx.js

AMD 사용하기

AMD(브라우저 우선) 의존성은 비동기적으로 로드되어, 브라우저가 응답을 잃는 상황을 방지할 수 있습니다.

다음 코드 예제는 RequireJS 설정, AMD를 사용한 SpreadJS 초기화, 그리고 AMD를 사용한 Excel IO Spread 사용 방법을 보여줍니다.

// RequireJS 구성하기
<script type="text/javascript">
        requirejs.config({
           "baseUrl": "./lib",
           "paths": {
              "gc-spread-sheets": "gc.spread.sheets.all.x.x.x",
              "gc-spread-excelio": "gc.spread.excelio.x.x.x"
            }
        });
</script>
// SpreadJS 및 ExcelIO 초기화
    <script type="text/javascript">
        var spread, excelIo, json;
        require(['gc-spread-sheets', 'gc-spread-excelio'], function (gc, excel) {
           spread = new gc.spread.sheets.Workbook(document.getElementById("ss"));
           excelIo = new excel.IO();
       });
    function SaveExcel(){
     json = spread.toJSON();
     excelIo.save(json, function (blob) {
           //save blob to excel.
           saveAs(blob, "export.xlsx");
          }, function (e) {
          if (e.errorCode === 1) {
            alert(e.errorMessage);
          }
       });
    }
</script>

CommonJS 사용하기

CommonJS(서버 우선) 의존성은 자바스크립트 코드가 통합 개발 환경(IDE)에서 실행되도록 합니다.

다음 코드 예제는 CommonJS를 사용하여 SpreadJS를 초기화하는 방법을 보여줍니다.

var gc = require('../lib/gc.spread.sheets.all.x.x.x.min.js');
window.onload = function() {
    var workbook = new gc.spread.sheets.Workbook(document.getElementById('ss'));
}
var gc = require('../lib/gc.spread.sheets.all.x.x.x.min.js');
var excel = require('../lib/gc.spread.excelio.x.x.x.min.js');
window.onload = function() {
    var workbook = new gc.spread.sheets.Workbook(document.getElementById('ss'));
    var json = JSON.stringify(workbook.toJSON());
    var excelIo = new excel.IO();
    excelIo.save(json, function (blob) {
        // blob를 엑셀 파일로 저장
    }, function (e) {
        if (e.errorCode === 1) {
            alert(e.errorMessage);
        }
    });
}