[]
SpreadJS는 Nuxt 3 및 Nuxt 4와 원활하게 작동합니다.
이 튜토리얼에서는 Nuxt 프로젝트에 SpreadJS를 통합하는 방법, 클라이언트 사이드 렌더링(CSR)으로 설정하는 방법, 그리고 선택적으로 Excel과 유사한 편집 도구를 제공하는 Designer 컴포넌트를 활성화하는 방법을 설명합니다.
기존의 Nuxt 3 또는 Nuxt 4 프로젝트를 사용할 수 있습니다.
새로운 프로젝트로 시작하려면 다음 명령을 실행하세요.
npm create nuxt@latest nuxt-with-spreadjs
cd nuxt-with-spreadjs
npm install그다음 애플리케이션을 실행합니다.
npm run dev기본 Nuxt 앱이 정상적으로 실행되는 것(http://localhost:3000)을 확인한 후 SpreadJS 통합을 시작할 수 있습니다.
SpreadJS 패키지 설치
애플리케이션 루트 폴더에 components 폴더가 없다면 새로 생성합니다.
npm install --save @mescius/spread-sheets-vueSpreadJS 컴포넌트 추가
components 폴더에 Spreadsheet.vue 파일을 생성하고 아래와 같이 컴포넌트를 정의합니다.SpreadJS 컨트롤을 초기화하기 전에 라이선스 키를 입력할 수도 있습니다.
<template>
<div>
<gc-spread-sheets class="hostClass" @workbookInitialized="initSpread">
<gc-worksheet> </gc-worksheet>
</gc-spread-sheets>
</div>
</template>
<script setup>
import "@mescius/spread-sheets/styles/gc.spread.sheets.excel2016colorful.css";
import { GcSpreadSheets, GcWorksheet } from "@mescius/spread-sheets-vue";
import * as GC from "@mescius/spread-sheets";
var data = [
{
jobTitleName: "Developer",
preferredFullName: "Romin Irani",
region: "CA",
phoneNumber: "408-1234567",
},
{
jobTitleName: "Developer",
preferredFullName: "Neil Irani",
region: "CA",
phoneNumber: "408-1111111",
},
{
jobTitleName: "Program Directory",
preferredFullName: "Tom Hanks",
region: "CA",
phoneNumber: "408-2222222",
},
];
let initSpread = function (spread) {
var sheet = spread.getSheet(0);
sheet.setDataSource(data);
};
</script>
<style scoped>
.hostClass {
width: 600px;
height: 600px;
}
</style>메인 앱에서 컴포넌트 사용
app.vue의 기본 내용을 아래와 같이 교체합니다.
<template>
<div>
<h1>
Jamstack 애플리케이션에 스프레드시트 추가하기
</h1>
<p>
Nuxt.JS + SpreadJS 데모
</p>
<SpreadSheet />
</div>
</template>Nuxt 설정 업데이트 (선택 사항)
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
//...
ssr: false,
components: true,
})참고:
SpreadJS는 브라우저 API에 의존하며 클라이언트 사이드에서만 실행됩니다.
Nuxt를 SSR 모드로 사용할 경우, SpreadJS 컴포넌트를
<client-only>태그로 감싸거나클라이언트 전용 플러그인(예:
plugins/spreadjs.client.ts)으로 등록해야 합니다.
npm run dev애플리케이션은 http://localhost:3000 에서 확인할 수 있으며, Nuxt 앱 안에서 SpreadJS 컴포넌트가 렌더링되어야 합니다.

Designer 컴포넌트를 추가하면 Excel 스타일의 서식 지정 및 편집 명령을 제공하여 사용자 인터페이스를 향상시킬 수 있습니다.
자세한 설정 방법은 SpreadJS 디자이너 컴포넌트를 참고하세요.
패키지 설치
npm i --save @mescius/spread-sheets @mescius/spread-sheets-barcode @mescius/spread-sheets-charts @mescius/spread-sheets-datacharts-addon @mescius/spread-sheets-designer @mescius/spread-sheets-designer-resources-en @mescius/spread-sheets-designer-vue @mescius/spread-sheets-formula-panel @mescius/spread-sheets-ganttsheet @mescius/spread-sheets-io @mescius/spread-sheets-languagepackages @mescius/spread-sheets-pdf @mescius/spread-sheets-print @mescius/spread-sheets-pivot-addon @mescius/spread-sheets-reportsheet-addon @mescius/spread-sheets-shapes @mescius/spread-sheets-slicers @mescius/spread-sheets-tablesheetSpreadsheet.vue 기본 내용 교체
<template>
<div id="gc-designer-container">
<gc-spread-sheets-designer
:styleInfo="styleInfo"
:config="config"
:spreadOptions="spreadOptions"
@designerInitialized="initDesigner"
/>
</div>
</template>
<script setup>
import "@mescius/spread-sheets/styles/gc.spread.sheets.excel2013white.css";
import "@mescius/spread-sheets-designer/styles/gc.spread.sheets.designer.light.min.css";
import "@mescius/spread-sheets-print";
import "@mescius/spread-sheets-shapes";
import "@mescius/spread-sheets-datacharts-addon";
import "@mescius/spread-sheets-slicers";
import "@mescius/spread-sheets-pivot-addon";
import "@mescius/spread-sheets-tablesheet";
import "@mescius/spread-sheets-ganttsheet";
import "@mescius/spread-sheets-reportsheet-addon";
import "@mescius/spread-sheets-formula-panel";
import "@mescius/spread-sheets-io";
import "@mescius/spread-sheets-designer-resources-en";
import * as GCDesigner from "@mescius/spread-sheets-designer";
import GcSpreadSheetsDesigner from "@mescius/spread-sheets-designer-vue";
const styleInfo = { height: "85vh", width: "100%" };
const config = GCDesigner.Spread.Sheets.Designer.DefaultConfig;
const spreadOptions = { sheetCount: 2 };
let designer = null;
function initDesigner(value) {
designer = value;
console.log("Designer initialized:", designer);
const spread = designer.getWorkbook();
if (spread) {
const sheet = spread.getSheet(0);
sheet.setValue(0, 0, "SpreadJS Designer에 오신 것을 환영합니다!");
}
}
</script>
<style scoped>
#gc-designer-container {
width: 100%;
height: 100%;
}
</style>실행 및 통합 확인
npm run dev