[]
React에서 SpreadJS의 Shape 요소를 사용하면 사각형, 원, 직사각형, 삼각형, 오각형, 육각형, 팔각형 등 다양한 기하학적 도형을 워크시트에 손쉽게 삽입하고 렌더링할 수 있습니다.
React 프로젝트 생성하기
명령 프롬프트 창을 열고 다음 명령어를 입력하세요:
npm install -g create-react-app
create-react-app quick-start
cd quick-start
npm start
작업이 완료되면 지정한 위치에 React 프로젝트가 생성됩니다. React 프로젝트 생성 방법에 대한 자세한 내용은 https://reactjs.org/docs/create-a-new-react-app.html을 참조하세요.
프로젝트에 SpreadJS React 모듈 설치하기
다음 명령어를 사용하여 프로젝트에 @mescius/spread-sheets-react를 설치하세요:
npm install @mescius/spread-sheets-react
SpreadJS CSS 임포트하기
다음 코드를 사용하여 index.js
파일에 SpreadJS CSS를 임포트하세요:
import '@mescius/spread-sheets/styles/gc.spread.sheets.excel2013white.css';
프로젝트에 Shapes React 모듈 설치하기
다음 명령어를 사용하여 프로젝트에 shapes 모듈을 설치하세요:
npm install @mescius/spread-sheets-shapes
React 애플리케이션에서 Shapes 사용하기
이제 필요에 따라 App.js
파일을 수정할 수 있습니다. 변경 사항은 브라우저 창을 새로 고침하면 반영됩니다. 예시로 아래 샘플 코드를 사용할 수 있습니다:
이 예제는 React 애플리케이션에서 shapes를 사용하는 방법을 보여줍니다.
import React from "react";
import "./App.css";
import GC from "@mescius/spread-sheets";
import { SpreadSheets, Worksheet } from "@mescius/spread-sheets-react";
// Shapes 모듈 임포트하기
import "@mescius/spread-sheets-shapes";
var SpreadJSKey = "xxx";
GC.Spread.Sheets.LicenseKey = SpreadJSKey;
class App extends React.Component {
constructor(props) {
super(props);
this.hostStyle = {
width: "1100px",
height: "800px",
};
}
// 워크북 초기화 이벤트 처리하기
workbookInit = (spread) => {
this.setState({
spread: spread,
});
// 시트 가져오기
let sheetShape = spread.getSheet(0);
// 시트 이름 설정하기
sheetShape.name("Shapes");
sheetShape.suspendPaint();
// 내장 도형 "도넛" 추가하기
var donutShape = sheetShape.shapes.add(
"autoShape",
GC.Spread.Sheets.Shapes.AutoShapeType.donut,
50,
50,
150,
150
);
// 내장 도형 "도넛"에 텍스트 추가하기
donutShape.text("Donut Shape");
// 내장 도형 "도넛"에 스타일 추가하기
var shapeStyle = donutShape.style();
shapeStyle.textEffect.color = "Red";
shapeStyle.textEffect.font = "18px Arial";
shapeStyle.textFrame.hAlign = GC.Spread.Sheets.HorizontalAlign.center;
shapeStyle.textFrame.vAlign = GC.Spread.Sheets.VerticalAlign.center;
donutShape.style(shapeStyle);
sheetShape.resumePaint();
};
render() {
return (
<div>
<SpreadSheets
backColor={this.spreadBackColor}
hostStyle={this.hostStyle}
workbookInitialized={this.workbookInit}
>
<Worksheet></Worksheet>
</SpreadSheets>
</div>
);
}
}
export default App;