微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

纯干货分享: 如何在 React 框架中使用SpreadJS

作者:葡萄城控件
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>
        "https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
    </head>
    </html>

在这页面中,我们将使用Babel的预编译版本(称为babel-standalone),因此我们也会添加一个对此的引用:

<script"https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>

最后,添加对Spread.Sheets的引用:

"http://cdn.grapecity.com/spreadjs/hosted/scripts/gc.spread.sheets.all.11.0.0.min.js"><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类

接下来,在页面添加一个脚本元素。我们将把所有的代码在这里

"text/babel"> 然后,为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.
    App 接下来,添加一个您将调用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> ) } render(){ </div> ) }

要完成脚本,请告诉React通过使用ReactDOM.render来初始化应用程序:

ReactDOM.render(
        //Main entry,initialize application react component.
            <App/>,document.getElementById('root')
    );

这就是使用React将Spread.Sheets添加到HTML页面所需的全部内容。这只是React和Spread.Sheets的基本使用,但可以轻松扩展。


关于SpreadJS在线Excel表格控件

SpreadJS 纯前端表格控件是基于 HTML5 的 JavaScript 电子表格和网格功能控件,适用于.NET、Java 、Web应用程序、移动端等多种平台的表格数据处理和类Excel功能的表格程序开发。全中文操作界面,零学习成本!便于您在系统开发过程中,更安全的管理Excel 数据,更快捷的完成海量数据交互,更方便的进行数据导出、导入、排序、过滤、增删改查、可视化及Excel 导入/导出等操作。SpreadJS自面世以来,备受华为、中通、中国民航飞行学院、中国平安 、中国能建、浪潮等国内知名企业客户青睐。

点击下载SpreadJS,免费试用

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如果组件之中有复用的代码,需要重新创建一个父类,父类中存储公共代码,返回子类,同时把公用属性...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例如我们的 setState 函数式同步执行的,我们的事件处理直接绑定在了 dom 元素上,这些都跟 re...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom 转为真实 dom 进行挂载。其实函数是组件和类组件也是在这个基础上包裹了一层,一个是调...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使用,可能是不了解。我公司的项目就没有使用,但是在很多三方库中都有使用。本小节我们来学习下如果使用该...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接触 react 就一直使用 mobx 库,上手简单不复杂。
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc 端可以使用分页进行渲染数限制,在移动端可以使用下拉加载更多。但是对于大量的列表渲染,特别像有实时数据...
本小节开始前,我们先答复下一个同学的问题。上一小节发布后,有小伙伴后台来信问到:‘小编你只讲了类组件中怎么使用 ref,那在函数式组件中怎么使用呢?’。确实我们...
上一小节我们了解了固定高度的滚动列表实现,因为是固定高度所以容器总高度和每个元素的 size、offset 很容易得到,这种场景也适合我们常见的大部分场景,例如...
上一小节我们处理了 setState 的批量更新机制,但是我们有两个遗漏点,一个是源码中的 setState 可以传入函数,同时 setState 可以传入第二...
我们知道 react 进行页面渲染或者刷新的时候,会从根节点到子节点全部执行一遍,即使子组件中没有状态的改变,也会执行。这就造成了性能不必要的浪费。之前我们了解...