概述
SpreadJS 最好的功能之一就是能够在不同的框架中使用它。本文将演示如何在简单的 Web 页面中使用 Babel JavaScript 编译器将 SpreadJS 与 React 快速结合。
第1步:设置 HTML5 页面
首先,我们需要在页面中添加对React的引用:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>SpreadJS React Demo</title>
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
</head>
</html>
在这个页面中,我们将使用 Babel 的预编译版本(称为 babel-standalone),因此我们也会添加一个对此的引用:
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
最后,添加对 Spread.Sheets 的引用:
<script src="http://cdn.grapecity.com/spreadjs/hosted/scripts/gc.spread.sheets.all.11.0.0.min.js"></script>
<link rel="stylesheet" type="text/css" href="http://cdn.grapecity.com/spreadjs/hosted/css/gc.spread.sheets.excel2013white.11.0.0.css">
在我们编写任何脚本之前,我们需要定义一个 DIV 元素来包含 Spread 实例。我们称之为 “root”。
<div id="root"></div>
第2步:为 Spread.Sheets 创建一个 React 类
接下来,在页面中添加一个脚本元素。我们将把所有的代码放在这里:
<script type="text/babel"></script>
然后,为 Spread.Sheets 定义一个 React 组件,以便我们可以定义一个扩展 React.Component 的类:
class ReactSpreadJS extends React.Component{
}
该类需要在其中定义 componentDidMount 和 render 函数。componentDidMount 函数在组件被挂载后立即被调用,所以我们用它来初始化 Spread 实例:
componentDidMount() {
//In the DidMount life cycle, we initialize Spread Sheet instance, and the host is defined in the Component template.
let spread = new GC.Spread.Sheets.Workbook(this.refs.spreadJs, {sheetCount: 3});
if(this.props.workbookInitialized){
this.props.workbookInitialized(spread);
}
}
接下来,在渲染函数中定义 Spread.Sheets DOM 元素:
render() {
//Define the Spread.Sheets DOM template
return(
<div ref="spreadJs" style={{width:'100%',height:'100%'}}>
</div>);
}
第3步:为组件创建一个应用程序类
首先,通过 App 类定义应用程序 React 组件:
//Define the application react component.
class App extends React.Component{ }
接下来,添加一个您将调用 ReactSpreadJS 组件的渲染函数:
render(){
//In the root component, it include one ReactSpreadJS component.
return(
<div style={{width:'800px',height:'600px'}}>
<ReactSpreadJS workbookInitialized = {(spread)=>{console.log(spread)}}>
</ReactSpreadJS>
</div>
)
}
要完成脚本,请告诉 React 通过使用 ReactDOM.render 来初始化应用程序:
ReactDOM.render(
//Main entry, initialize application react component.
<App/>,
document.getElementById('root')
);
这就是使用 React 将 Spread.Sheets 添加到 HTML 页面所需的全部内容。这只是 React 和 Spread.Sheets 的基本使用,但可以轻松扩展。
SpreadJS | 下载试用
纯前端表格控件 SpreadJS,是市面上布局与功能都与 Excel 高度类似的一款表格控件,全中文操作界面,适用于 .NET、Java、移动端等多个平台的类 Excel 数据开发,备受华为、中通、民航飞行学院等国内知名企业客户青睐。
您对 SpreadJS 产品的任何技术问题,都有技术支持工程师提供 1 对 1 专业解答,点击此处即可发帖提问>>技术支持论坛