SpreadJS React コンポーネントの使い方

Excelライクなスプレッドシートの機能を、Reactアプリケーションに簡単に組み込むことができます。わずかなステップで強力なスプレッドシート体験を実現できることをご確認ください。

手順

  1. Reactアプリケーションを作成します。 - Create React Appツールを使用して、新規のReactアプリケーションを作成できます。コマンドプロンプトまたはターミナルから以下のコマンドを実行して、デフォルトのオプションでReactアプリケーションを作成します。詳細は Create React App サイトの 「Getting Started」をご参照ください。
    npm init react-app sjs-react-app
    cd sjs-react-app
  2. SpreadJSのnpmパッケージをインストールします。 - SpreadJSのReactコンポーネントは、@grapecity/spread-sheets-react のnpmパッケージで配布しています。メインの @grapecity/spread-sheets パッケージは、コア機能を提供しています。 これらのパッケージの最新版をインストールするには、アプリケーションのルートフォルダーから次のコマンドを実行します。
    npm install @grapecity/spread-sheets-react @grapecity/spread-sheets
    
    // 日本語リソースをインストールします。
    npm install @grapecity/spread-sheets-resources-ja
  3. SpreadJS Reactコンポーネントをアプリケーションに追加し、スプレッドシートを初期化します。 - src\App.js ファイルを開き、内容を以下のコードに変更します。
    import * as React from 'react';
    import * as GC from '@grapecity/spread-sheets';
    import '@grapecity/spread-sheets-resources-ja';
    import { SpreadSheets } from '@grapecity/spread-sheets-react';
    import '../node_modules/@grapecity/spread-sheets/styles/gc.spread.sheets.excel2013white.css';
    
    // 日本語カルチャを設定します
    GC.Spread.Common.CultureManager.culture('ja-jp');
        
    class App extends React.Component {
        constructor(props) {
            super(props);
            this.hostStyle = {
                width: '100%',
                height: '600px'
            }
        }
        render() {
            return (
                <div>
                    <SpreadSheets hostStyle={this.hostStyle} workbookInitialized={spread=>this.initSpread(spread)}>
                    </SpreadSheets>
                </div>
            )
        }
        // 初期化処理
        initSpread(spread) {
        }
    }
    
    export default App;
  4. アプリケーションを実行します。 - ターミナルで以下のコマンドを入力し、アプリケーションを実行します。
    npm start

値と数式の設定

手順

  1. setValueメソッドを使用してセルの値を設定します。また、setFormulaメソッドで計算式を作成します。
    initSpread: function (spread) {
        var sheet = spread.getSheet(0);
        // テキストを設定します。
        sheet.setText(0,0,"This is a text");
        // 数値を設定します。
        sheet.setValue(1, 0, 2245);
        sheet.setValue(2, 0, 2245);
        // 日付型の値を設定します。
        sheet.setValue(3, 0, new Date(2020, 10, 7));
        sheet.getRange(3, 0, 1, 1).formatter("mm-dd-yyyy");
    
        // 数式を設定します。(A2とA3セルの合計を計算します。)
        sheet.setFormula(3, 3, '=SUM(A2:A3)');
    }

スタイルの設定

以下の機能を使って、データをより分かりやすく表現しましょう。

手順

  1. このステップでは、シートのスタイルを設定してデータを見やすく表現します。
    initSpread: function (spread) {
        // スタイルを設定します。
        sheet.setColumnWidth(1, 200);
        sheet.setColumnWidth(2, 200);
        sheet.getRange(1, 1, 1, 2).backColor("rgb(130, 188, 0)").foreColor("rgb(255, 255, 255)");
        sheet.getRange(3, 1, 1, 2).backColor("rgb(211, 211, 211)");
        sheet.addSpan(1, 1, 1, 2);
        sheet.getRange(1, 1, 6, 2).setBorder(new GC.Spread.Sheets.LineBorder("Black", GC.Spread.Sheets.LineStyle.thin), {
            all: true
        });
        sheet.getRange(2, 1, 5, 2).setBorder(new GC.Spread.Sheets.LineBorder("Black", GC.Spread.Sheets.LineStyle.dotted), {
            inside: true
        });
        sheet.getRange(1, 1, 1, 2).hAlign(GC.Spread.Sheets.HorizontalAlign.center);
    }

データ連結

以下のように、データを簡単かつ効率的に連結することができます。

手順

  1. getSheet メソッドを使用して、データ連結を設定するシートを取得します。
  2. セルに連結するデータソースを "new GC.Spread.Sheets.Bindings.CellBindingSource(person); "で作成します。
  3. setBindPath メソッドを使用して、指定されたシート領域の指定されたセルのバインディングパスを設定します。
  4. setDataSource メソッドを使用して、シートのデータソースを設定します。
    initSpread: function (spread) {
        var sheet = spread.getSheet(0);
        var person = { name: 'Peter Winston', age: 25, gender: 'Male', address: { postcode: '10001' } };
        var source = new GC.Spread.Sheets.Bindings.CellBindingSource(person);
        sheet.setBindingPath(2, 2, 'name');
        sheet.setBindingPath(3, 2, 'age');
        sheet.setBindingPath(4, 2, 'gender');
        sheet.setBindingPath(5, 2, 'address.postcode');
        sheet.setDataSource(source);
    }