spreadjs学习总结(持续更新)

本文提供了一份详细的SpreadJS使用指南,包括初始化模板、设计模板、绑定数据源等关键步骤,并附带具体示例代码,帮助开发者快速掌握核心功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

苦于spreadjs学习教程和案例非常少,于是自己慢慢学习,慢慢总结出来,便于复习与巩固

申请试用可以获取官方技术人员免费30天技术指导

学习常用链接

spreadjs官网
spreadjs示例
spreadjs学习视频
spreadjs文档Api

常见功能

1、初始化模板
// template
  <gc-spread-sheets-designer
        @designerInitialized="designerInitialized"
      ></gc-spread-sheets-designer>
// js 
 import { testJson } from "/static/testJson.js";// 导入模板json文件
 
 designerInitialized(designer) { // 初始化方法
      this.designer = designer;
      this.spread = this.designer.getWorkbook();
      this.spread.fromJSON(testJson);
    },
2、设计模板,绑定数据源,可以设置对应的字段和对应的单元格类型,有表格,复选框,超链接,组合框,按钮,文本等等

注意 设计组合框时候需要单元格右键设置标签,例如你需要给下拉框选项动态赋值的时候,多个下拉框,不打唯一标签tag,不知道是哪个下拉框的
在这里插入图片描述

3、绑定数据源给单元格赋值(例如给上面设置的name赋值)
// 依赖
   import * as GC from "@grapecity/spread-sheets";
// 自定义方法里面
   let data = {
        name: "张三"
      };
   let spreadNS = GC.Spread.Sheets;
   let source = new spreadNS.Bindings.CellBindingSource(data);
   this.sheet.setDataSource(source);
4、绑定数据源给表格赋值(例如给上面设置的table赋值)
// 依赖
   import * as GC from "@grapecity/spread-sheets";
// 自定义方法里面
   let data = {
            table: [
	          {
	            goodName: "口罩",
	            number: 1000,
	          }
        ],
      };
   let spreadNS = GC.Spread.Sheets;
   // 给表格列设置成中文(例如number设置成中文)
   let columnsData = [
        { lable: "商品名称", property: "goodName" },
        { lable: "数量", property: "number" },
      ];
   let tableColumns = [];
   columnsData.forEach((item, index) => {
	    let tableColumn = new spreadNS.Tables.TableColumn();
	    tableColumn.name(item.lable);
	    tableColumn.dataField(item.property);
	    tableColumns.push(tableColumn);
   });
   let table = this.spread.getActiveSheet().tables.all()[0];
   table.bindColumns(tableColumns);
   // 赋值
   let source = new spreadNS.Bindings.CellBindingSource(data);
   this.sheet.setDataSource(source);
5、绑定数据源给下拉框动态赋值和选项赋值

选项动态赋值,思路就是找到打了唯一标签tag的下拉框坐标,然后根据坐标赋值即可,代码如下

// 首先封装一个根据标签tag获取坐标的方法
 returnRowColumn(tag) {
      var sheet = this.spread.getActiveSheet();
      var rowNum = sheet.getRowCount();
      var colNum = sheet.getColumnCount();
      for (var i = 0; i < rowNum; i++) {
        for (var j = 0; j < colNum; j++) {
          if (sheet.getCell(i, j).tag() == tag) {
            return [i, j];
          }
        }
      }
    },
// 方法里面根据坐标给给下拉框选项赋值

this.sheet = this.spread.getActiveSheet();
let rowColum = this.returnRowColumn('sex');
var combo = this.sheet.getCellType(rowColum[0], rowColum[1]);
combo.items([
            { text: "女", value: "0" },
            { text: "男", value: "1" },
]);
// 给下拉框赋值3、绑定数据源给单元格赋值 同理

5、获取模板
let content = JSON.stringify(this.designer.getWorkbook().toJSON());
console.log("content", content);
6、获取所有数据
 this.sheet = this.spread.getActiveSheet();
 let allData = this.sheet.getDataSource().getSource();
 console.log("allData ", allData);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源码好多V+ymhyd666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值