! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

JavaScript를 사용하여 URL에서 Excel XLSX 파일을 읽는 방법 > 온라인 스터디

본문 바로가기

고급기능 JavaScript를 사용하여 URL에서 Excel XLSX 파일을 읽는 방법

페이지 정보

작성자 GrapeCity 작성일 2023-04-18 16:45 조회 577회 댓글 0건

본문

SpreadJS를 사용하여 Excel 파일을 JS 앱에 가져오기

GrapeCity의 JavaScript 스프레드시트 API인 SpreadJS SpreadJS Excel IO 모듈을 사용하여 복잡한 Excel(.XLSX) 파일을 가져오고 내보냅니다. Excel IO 모듈에는 Excel에 종속되지 않고 바로 내장된 가져오기 및 내보내기를 위한 순수 JavaScript 로직이 포함되어 있습니다. 이 기능은 응용 프로그램 플랫폼을 독립형으로 구축해야 할 때 매우 유용합니다.

Excel IO 모듈은 JavaScript를 사용하여 모든 HTML 페이지에서 실행할 수 있어 SpreadJS를 JavaScript 응용 프로그램에 쉽게 통합할 수 있습니다. 현재 Excel 파일을 사용자 시스템에서 가져오는 방법을 보여 주는 라이브 데모가 있지만 SpreadJS도 지정된 URL에서 Excel 파일 가져오기를 지원합니다. 이 블로그에서는 지정된 URL에서 Excel 파일을 가져오고 읽기 위해 Excel IO 요소에 SpreadJS API를 활용하는 방법을 살펴보겠습니다.


JavaScript 응용 프로그램의 URL에서 Excel XLSX 파일을 읽는 방법

  1. SpreadJS 스프레드시트로 JavaScript 프로젝트를 만들기
  2. URL을 사용하여 Excel 파일을 가져오고 blob으로 파일을 반환하기
  3. Excel 파일의 blob을 읽고 SpreadJS 스프레드시트로 가져오기

블로그와 함께 따라 할 샘플 응용 프로그램 다운로드


1단계: SpreadJS 스프레드시트로 JavaScript 프로젝트를 만들기

먼저 간단한 HTML 파일을 만드는 것으로 시작합니다.

index.html

<!doctype html>
<html lang="en" style="height:100%;font-size:14px;">

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
<body>      
</body>
</html>


프로젝트에 필요한 SpreadJS 릴리스 파일을 포함합니다. 파일은 HTML 파일의 head 태그에 포함할 수 있습니다.

기본 SpreadJS 라이브러리spread.sheets.all.x.x.x.min.js
SpreadJS 플러그인spread.sheets.charts.x.x.x.min.js – 차트를 보려면 포함해야 합니다. spread.sheets.shapes.x.x.x.min.js – 셰이프를 보려면 포함해야 합니다.
Excel IO 라이브러리spread.excelio.x.x.x.min.js
SpreadJS CSS - SpreadJS 테마 설정spread.sheets.excel2013white.css선택할 수 있는 여러 SpreadJS 테마

index.html

<!doctype html>
<html lang="en" style="height:100%;font-size:14px;">

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
    <link rel="stylesheet" type="text/css" href="...gc.spread.sheets.excel2013white.css"/>
    <script src="...gc.spread.sheets.all.min.js" type="text/javascript"></script>
    <script src="...gc.spread.excelio.min.js" type="text/javascript"></script>
    <script src="...gc.spread.sheets.charts.min.js" type="text/javascript"></script>
    <script src="...gc.spread.sheets.shapes.min.js" type="text/javascript"></script>
</head>
<body>      
</body>
</html>


SpreadJS는 NPM에서 사용할 수 있습니다

개발자는 NPM을 사용하여 SpreadJS를 설치할 수 있습니다.
다음은 NPM 페이지의 링크입니다.

기본 SpreadJS 라이브러리@grapecity/spread-sheetsSpreadJS CSS 테마를 설치합니다. node_modules/@grapecity/spread-sheets/styles
SpreadJS 플러그인@grapecity/spread-sheets-charts – 차트를 보려면 포함해야 합니다.@grapecity/spread-sheets-shapes – 셰이프를 보려면 포함해야 합니다.
Excel IO 라이브러리@grapecity/spread-excelio

이제 SpreadJS가 JavaScript 프로젝트에 포함되었으므로 통합 문서와 Excel IO 모듈을 초기화해야 합니다.

이 데모에서 JavaScript 파일을 만들었으며 이 작업을 수행하기 위해 Window Onload 함수를 추가했습니다.

apps.js

window.onload = function () {
        // Initialize SpreadJS and ExcelIO
        var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
        var excelIo = new GC.Spread.Excel.IO();
}

마지막으로, DIV 요소를 추가하여 웹페이지에서 SpreadJS를 호스팅합니다.

index.html

<!doctype html>
<html lang="en" style="height:100%;font-size:14px;">

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
    <link rel="stylesheet" type="text/css" href="...gc.spread.sheets.excel2013white.css"/>
    <script src="...gc.spread.sheets.all.min.js" type="text/javascript"></script>
    <script src="...gc.spread.excelio.min.js" type="text/javascript"></script>
    <script src="...gc.spread.sheets.charts.min.js" type="text/javascript"></script>
    <script src="...gc.spread.sheets.shapes.min.js" type="text/javascript"></script>
    <script src="app.js" type="text/javascript"></script>
</head>
<body>    
    <!-- Workbook host element -->
    <div id="ss" style="width:75%;height:75%"></div>
</body>
</html>


결과: JavaScript 스프레드시트 컨트롤인 SpreadJS를 이제 브라우저에서 확인할 수 있습니다.

img


2단계: URL을 사용하여 Excel 파일을 가져오고 blob으로 파일을 반환하기

페이지 본문에 다음 HTML 입력 요소 2 개를 추가합니다.

index.html

<body>
    <!-- Workbook host element -->
    <div id="ss" style="width:75%;height:75%"></div>
    <p>Import URL</p>
    <input id="importURL"value="https://cdn.grapecity.com/support/spread/Kevin%20Ashley/export.xlsx"/>
    <button id="loadFromURL">Import Excel from URL</button>
</body>


클릭 이벤트 수신기를 추가합니다. 버튼에서 클릭을 캡처하고 입력에서 URL을 읽습니다.

이벤트 내에서
 API 가져오기를 사용하여 가져오기 요청을 설정하고 연결된 Excel 통합 문서 데이터를 blob으로 반환합니다.

app.js

window.onload = function () {
    // Initialize SpreadJS and ExcelIO
    var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
    var excelIo = new GC.Spread.Excel.IO();
    
    document.getElementById('loadFromURL').addEventListener('click', function () {
      var url = document.getElementById("importURL").value;
      fetch(url)
          .then(res => res.blob()) // returns URL data a blob
          .then((blob) => { 
            console.log(blob);        
          });   
    })
};

결과: 이제 blob으로 URL을 반환하겠습니다. blob은 현재 콘솔에서 볼 수 있습니다.

img


3단계: Excel 파일의 blob을 읽고 SpreadJS 스프레드시트로 가져오기

이제 URL에서 Excel 파일의 데이터를 가져오고 파일의 데이터를 blob으로 반환할 수 있습니다. 마지막 단계는 blob을 읽고 SpreadJS 인스턴스로 가져오는 것입니다.

이 작업을 완료하려면 가져오기 요청 내에서
 Excel IO의 open 메서드 SpreadJS의 fromJSON 메서드를 사용해야 합니다.

app.js

window.onload = function () {
    // Initialize SpreadJS and ExcelIO
    var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
    var excelIo = new GC.Spread.Excel.IO();
    
    document.getElementById('loadFromURL').addEventListener('click', function () {
      var url = document.getElementById("importURL").value;
      fetch(url)
          .then(res => res.blob()) // returns URL data a blob
          .then((blob) => { 
            // console.log(blob);  
              excelIo.open(blob, (json) => {
                spread.fromJSON(json);
              },
              (message) => {
                console.log(message);
              });    
          });   
    })
};


결과: 사용자는 이제 URL의 웹 앱에서 Excel 파일을 보고 편집할 수 있습니다. 내보내기 기능을 추가하는 방법을 보여주는 별도의 블로그가 있습니다. 확인해 보세요!

img




지금 바로 SpreadJS를 다운로드하여 직접 테스트해 보세요!

spjs.png

  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그1

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.