找回密码
 立即注册

QQ登录

只需一步,快速开始

Ellia.Duan SpreadJS 开发认证
超级版主   /  发表于:2024-12-25 14:01  /   查看:13  /  回复:0
本帖最后由 Ellia.Duan 于 2024-12-25 14:11 编辑

有些用户很苦恼,我仅仅使用了SpreadJS中的数据绑定功能,为什么打包后的体积有4M左右呢(gc.spread.sheets.all包的大小)。


那么有什么办法解决呢?其实SpreadJS从很久以前就提供了独立模块,可以将all包根据模块进行拆分。
如果有用户下载了SpreadJS官网的包,会发现下载的release包就包含了这些内容,如下图所示:
image.png379135131.png
那么,现在前端项目都是使用的各种框架,如vue ,react ,我们是否支持在框架中使用独立模块呢?

答案是肯定,SpreadJS在16.2.0版本就实现了npm方式进行单独的模块
image.png370585021.png


我们来看下怎么使用吧。
一、支持的打包工具
在开始前呢,先介绍下,目前支持的打包工具:

  • WebPack
  • Vite
  • Rollup
  • ESBuild
  • Angular CLI
  • Create React App
  • Create Vue
二、选择模块
其次,选择需要的模块,比如我们需要数据绑定功能,需要导入哪个包呢?具体查看这篇文章
image.png341188353.png
如上图所示,我们需要common包、core包、bindings包。
三、设置package.json
那么,package.json文件怎么设置呢?
  1. "dependencies": {
  2.     "@grapecity-software/spread-common": "17.1.10",
  3.     "@grapecity-software/spread-sheets-core": "17.1.10",
  4.     "@grapecity-software/spread-sheets-bindings": "17.1.10"
  5.   },
复制代码
接下来,执行npm install 或者yarn  install等。
那么,如何使用呢?
四、使用
1、引入依赖:
  1. import GC from "@grapecity-software/spread-common";
  2. import "@grapecity-software/spread-sheets-core";
  3. import "@grapecity-software/spread-sheets-bindings";
  4. import "@grapecity-software/spread-sheets-cell-types";

  5. import "@grapecity-software/spread-common/styles/gc.spread.sheets.excel2013white.css"
复制代码
2、添加dom容器
  1.     return (
  2.         <div className="app">
  3.             <div id="ss" className="spread-container"></div>
  4.         </div>

  5.     );
复制代码
3、初始化dom
  1. useEffect(() => {
  2.         let spread = new GC.Spread.Sheets.Workbook("ss",{sheetCount:2})
  3.         spread.suspendPaint();
  4.         spread.options.tabStripRatio = 0.8;


  5.         var sheet = spread.getActiveSheet();
  6.         sheet.name("Custom binding");
  7.         sheet.autoGenerateColumns = false;
  8.         var products = getProducts(100);
  9.         sheet.setDataSource(products);
  10.         var colInfos = [
  11.             {name: "id", displayName: "ID"},
  12.             {name: "name", displayName: "Name", size: 100},
  13.             {name: "line", displayName: "Line", size: 80},
  14.             {name: "color", displayName: "Color"},
  15.             {name: "price", displayName: "Price", formatter: "0.00", size: 80},
  16.             {name: "cost", displayName: "Cost", formatter: "0.00", size: 80},
  17.             {name: "weight", displayName: "Weight", formatter: "0.00", size: 80},
  18.             {
  19.                 name: "discontinued",
  20.                 displayName: "Discontinued",
  21.                 cellType: new GC.Spread.Sheets.CellTypes.CheckBox(),
  22.                 size: 100
  23.             },
  24.             {name: "rating", displayName: "Rating"}
  25.         ];
  26.         sheet.bindColumns(colInfos);
  27.         spread.resumePaint();
  28.     }, []);
复制代码
上述代码,在useEffect中,初始化了spread、sheet对象,然后进行了setDataSource 数据绑定。
注意,此时不能使用'@grapecity-software/spread-sheets-react'或者'@grapecity-software/spread-sheets-vue'


整个项目如下: react_core2.zip (491.98 KB, 下载次数: 1)

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部