找回密码
 立即注册

QQ登录

只需一步,快速开始

肖小云
注册会员   /  发表于:2019-6-28 10:25  /   查看:3213  /  回复:8
本帖最后由 肖小云 于 2019-6-28 20:08 编辑

现在获取数据的方法都是获取具体的行和列的序号,类似于sheet.getCell(1,2).text('hello')目前的痛点:因为顺序经常会变更,那么绑定在固定的列上面的方法都要跟着去调整,很容易出错

希望的效果:能做到动态的去绑定数据,给每一列设置名称,而且这个名称是唯一的,那么我可以通过列的名称来获取到列所在的位置,从而来改变对应的函数操作



autoColumn.rar

1017 Bytes, 下载次数: 113

8 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-6-28 11:42:55
沙发
您好,跟您在QQ中沟通时,以为您要给列设置CustomName,看到您的需求后,实际上在
SpreadJS中有更加简便的实现方式,用标签实现:
https://demo.grapecity.com.cn/Sp ... demos/tagBasic.html

同时,我对列上添加CustomName也做了分析,您可以通过以下代码设置和获取列名称:

  1. var spread = GC.Spread.Sheets.findControl("ss");
  2. var sheet = spread.getActiveSheet();
  3. sheet.addCustomName("myName","=$A:$A",0,0,"hahahahaha")
  4. var myName = sheet.getCustomName("myName");
  5. myName.getColumn()
复制代码
回复 使用道具 举报
肖小云
注册会员   /  发表于:2019-6-28 15:22:22
板凳
KevinChen 发表于 2019-6-28 11:42
您好,跟您在QQ中沟通时,以为您要给列设置CustomName,看到您的需求后,实际上在
SpreadJS中有更加简便的 ...

您好,谢谢您的帮助。认真的看完您给我的指导内容,有个疑问点是如果给每一列设置tag的话,那么如何获取到tag为a所在的某一列的位置呢?还有能否如链接这种:http://www.jeasyui.net/demo/335.html
columns:[[
                                        {field:'itemid',title:'Item ID',width:80},
                                        {field:'productid',title:'Product ID',width:120},
                                        {field:'listprice',title:'List Price',width:80,align:'right'},
                                        {field:'unitcost',title:'Unit Cost',width:80,align:'right'},
                                        {field:'attr1',title:'Attribute',width:250},
                                        {field:'status',title:'Status',width:60,align:'center'}
                                ]],
能直接设置field和读取field
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-6-28 16:33:50
地板
您好,用tag和customName,都可以执行定位操作,只是相对来说tag稍显麻烦一些,

1、tag定位:可以用tag搜索实现:
https://demo.grapecity.com.cn/Sp ... e/#/demos/tagSearch

2、customName:可以直接从获取到的customName中拿到列序号,但是不能给整列设置customName,可以考虑直接设置到第一行上。
回复 使用道具 举报
肖小云
注册会员   /  发表于:2019-6-28 20:09:18
5#
KevinChen 发表于 2019-6-28 16:33
您好,用tag和customName,都可以执行定位操作,只是相对来说tag稍显麻烦一些,

1、tag定位:可以用tag ...

为什么设置了列的名称,但是获取不到列所在的序号?
回复 使用道具 举报
肖小云
注册会员   /  发表于:2019-6-28 20:11:43
6#
KevinChen 发表于 2019-6-28 16:33
您好,用tag和customName,都可以执行定位操作,只是相对来说tag稍显麻烦一些,

1、tag定位:可以用tag ...

现在还差一步,想请教大神,请看我的demo,我给列设置了名称,但是通过名称读取列所在的位置的时候返回的是-1还请看看原因https://gcdn.grapecity.com.cn/fo ... TA0MHw1Nzk4Nw%3D%3D
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-7-1 12:30:26
7#
您好,你提供的示例有问题,GeneralSlicerData是切片器的类,当然无法获取具体列的位置,

我做了一个Demo,只针对表单绑定的,在帖子附件上,请参考。

在例子里你可以通过按住shift拖拽列的位置,点击按钮就可以弹出列的位置坐标。

SpreadJS实现定位列.html

4.15 KB, 下载次数: 81

回复 使用道具 举报
肖小云
注册会员   /  发表于:2019-7-1 17:34:30
8#
KevinChen 发表于 2019-7-1 12:30
您好,你提供的示例有问题,GeneralSlicerData是切片器的类,当然无法获取具体列的位置,

我做了一个Dem ...

非常感谢,我理解了!
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-7-1 18:13:01
9#
不客气,感谢您的反馈,本帖结贴了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部