找回密码
 立即注册

QQ登录

只需一步,快速开始

初一呀
初级会员   /  发表于:2022-8-8 17:24  /   查看:1566  /  回复:8
1金币
image.png983141479.png

最佳答案

查看完整内容

您好,这是我昨天写的,这样也可以完成,自定义单元格可以实现了。

8 个回复

倒序浏览
最佳答案
最佳答案
初一呀
初级会员   /  发表于:2022-8-8 17:24:26
来自 7#

您好,这是我昨天写的,这样也可以完成,自定义单元格可以实现了。
回复 使用道具 举报
沉沉悬赏达人认证
金牌服务用户   /  发表于:2022-8-8 17:38:46
2#
sheet通过getText(),getValue()等方法可以获取单元格的值,获取值后,你可以对字符串进行处理,得到想到格式的值
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-8-8 18:07:58
3#
您好,
图中这个方块您是如何设置的呢?指的是复选框吗?
如果是使用的SJS复选框相关方法进行设置的,可以参考学习指南进行value的获取以及复选框显示文本,并整理为您想要的数据结构。
https://demo.grapecity.com.cn/sp ... pes/checkbox/purejs
如果不是,请详细描述下设置方式,以便这边理解此问题。
回复 使用道具 举报
初一呀
初级会员   /  发表于:2022-8-9 14:01:32
4#
Lynn.Dou 发表于 2022-8-8 18:07
您好,
图中这个方块您是如何设置的呢?指的是复选框吗?
如果是使用的SJS复选框相关方法进行设置的,可 ...

用了自定义单元格,有个问题,要把数据和值放在一列单元格中获取
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-8-9 17:44:01
5#
这边不了解您自定义单元格中是如何实现的,所以难以调研相应的方案。
您参考附件demo,在demo补充上自己的代码,需可复现此问题,这边在代码基础上调研下如何实现您的需求。

demo-sjs模板.html

3.1 KB, 下载次数: 86

回复 使用道具 举报
初一呀
初级会员   /  发表于:2022-8-10 11:02:05
6#
Lynn.Dou 发表于 2022-8-9 17:44
这边不了解您自定义单元格中是如何实现的,所以难以调研相应的方案。
您参考附件demo,在demo补充上自己的 ...

<template>
  <div class="sample-tutorial">
    <gc-spread-sheets class="sample-spreadsheets" @workbookInitialized="initSpread">
      <gc-worksheet></gc-worksheet>
      <div @click="handelClick" class="btn">获取数值</div>
    </gc-spread-sheets>

  </div>
</template>

<script>
  import Vue from "vue";
  import '@grapecity/spread-sheets-resources-zh';
  GC.Spread.Common.CultureManager.culture("zh-cn");
  import "@grapecity/spread-sheets-vue";
  import GC from "@grapecity/spread-sheets";
  import "./styles.css";
  import {
    FivePointedStarCellType,
    FullNameCellType
  } from "./data.js";
  const spreadNS = GC.Spread.Sheets;

  //Custom Cell Type


  let App = Vue.extend({
    name: "app",
    data: function () {
      return {
        spread: ''
      };
    },
    methods: {
      handelClick() {
        let selection = this.spread.getActiveSheet().getSelections()[0]
        console.log(selection, 'ssss');
        let result = []
        let rowList = [],
          colList = [],
          ListObj = []
        for (let i = 0; i < selection.rowCount; i++) {
          rowList.push(selection.row + i)
        }
        for (let i = 0; i <
          selection.colCount; i++) {
          colList.push(selection.col + i)
        }
        for (let i = 0; i < rowList.length; i++) {
          for (let j = 0; j < colList.length; j++) {
            ListObj.push({
              row: rowList,
              col: colList[j]
            })
          }
        }
        for (let i = 0; i < ListObj.length; i++) {
          this.spread.getActiveSheet().getValue(ListObj.row, ListObj.col)
          result.push(
            this.spread.getActiveSheet().getValue(ListObj.row, ListObj.col)
          )
          console.log(this.spread.getActiveSheet().getValue(ListObj.row, ListObj.col));
        }
        // console.log(rowList, colList, ListObj);
        console.log(result, 'result');
        let value = [];
        let label = [];
        let obj = [{
          label: '',
          value: ''
        }]
        result.map((item, index) => {
          obj.push()
        })
        for (let i = 0; i < result.length; i = i + 2) {
          console.log(result);
          value.push(result)
        }
        for (let i = 1; i < result.length; i = i + 2) {
          console.log(result);
          label.push(result)
        }


        let results = value.map((name, i) => ({
          name,
          value: label
        }));
        console.log(results, 'ddddddd');
      },
      initSpread(spread) {
        this.spread = spread
        const sheet = spread.getSheet(0);
        sheet.suspendPaint();
        sheet.setColumnWidth(0, 100);
        sheet.setColumnWidth(1, 170);

        const columnInfo = [{
            name: "result",
            displayName: "Result",
            cellType: new FivePointedStarCellType(),
            size: 50
          },
          {
            name: "person",
            displayName: "Person",
            cellType: new FullNameCellType(),
            size: 170
          }
        ];

        var source = [{
            result: true,
            person: {
              showValue: "LeBron",
              hiddenValue: "James"
            }
          },
          {
            result: false,
            person: {
              showValue: "Chris",
              hiddenValue: "Bosh"
            }
          },
          {
            result: true,
            person: {
              showValue: "Dwyane",
              hiddenValue: "Wade"
            }
          },
          {
            result: false,
            person: {
              showValue: "Mike",
              hiddenValue: "Miller"
            }
          },
          {
            result: true,
            person: {
              showValue: "Mike",
              hiddenValue: "Miller"
            }
          },
          {
            result: true,
            person: {
              showValue: "Udonis",
              hiddenValue: "Haslem"
            }
          },
          {
            result: true,
            person: {
              showValue: "Mario",
              hiddenValue: "Chalmers"
            }
          },
          {
            result: true,
            person: {
              showValue: "Joel",
              hiddenValue: "Anthony"
            }
          },
          {
            result: false,
            person: {
              showValue: "Shane",
              hiddenValue: "Battier"
            }
          },
          {
            result: false,
            person: {
              showValue: "Ray",
              hiddenValue: "Allen"
            }
          },
          {
            result: true,
            person: {
              showValue: "James",
              hiddenValue: "Jones"
            }
          },
          {
            result: false,
            person: {
              showValue: "Rashard",
              hiddenValue: "Lewis"
            }
          },
          {
            result: true,
            person: {
              showValue: "Norris",
              hiddenValue: "Cole"
            }
          },
          {
            result: true,
            person: {
              showValue: "Chris",
              hiddenValue: "Andersen"
            }
          },
          {
            result: false,
            person: {
              showValue: "Jarvis",
              hiddenValue: "Varnado"
            }
          },
          {
            result: true,
            person: {
              showValue: "Juwan",
              hiddenValue: "Howard"
            }
          },
        ];
        sheet.setDataSource(source);
        sheet.bindColumns(columnInfo);
        sheet.resumePaint();
      }
    }
  });
  FullNameCellType.prototype.isEditingValueChanged = function (oldValue, newValue) {
    if (newValue.showValue != oldValue.showValue || newValue.hiddenValue != oldValue.hiddenValue) {
      return true;
    }
    return false;
  };
  new Vue({
    render: h => h(App)
  }).$mount("#app");
</script>
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-8-10 17:13:33
8#
请在上个回答中所附的demo中补充上完整代码,并可直接运行复现此问题。
根据您目前所提供的代码无法运行复现:
image.png564246520.png
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-2 19:10:29
9#
请问楼主问题解决了吗?如果仍未解决,如楼上所述,请提供可复现的demo,以便问题后续调研。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部