找回密码
 立即注册

QQ登录

只需一步,快速开始

周哥哥

注册会员

5

主题

15

帖子

62

积分

注册会员

积分
62
最新发帖
周哥哥
注册会员   /  发表于:2020-6-16 16:27  /   查看:3636  /  回复:6
image.png528142699.png
各位大佬,现在发现sheet表格的列名是不能够重复,如果需求上有这种需求(列名重复),该怎么解决?
image.png616574401.png

demo.zip

594.46 KB, 下载次数: 103

6 个回复

倒序浏览
Fiooona
论坛元老   /  发表于:2020-6-16 16:50:13
沙发
表格的列名不能重复,这个是我们控件的设计,并且Excel中也是这样设计,如果业务中有这样的需求,建议多层表头不要用table自带的表头,将表头隐藏

多层表头参考文章:https://gcdn.grapecity.com.cn/showtopic-74236-1-2.html
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
周哥哥
注册会员   /  发表于:2020-6-16 16:57:31
板凳
Fiooona 发表于 2020-6-16 16:50
表格的列名不能重复,这个是我们控件的设计,并且Excel中也是这样设计,如果业务中有这样的需求,建议多层 ...

但是如果隐藏了表头,排序功能就失效了
回复 使用道具 举报
周哥哥
注册会员   /  发表于:2020-6-16 17:05:13
地板
周哥哥 发表于 2020-6-16 16:57
但是如果隐藏了表头,排序功能就失效了

而且现在排序结果有问题,代码我已经上传了,麻烦帮忙看看
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-6-16 18:44:42
5#
本帖最后由 Fiooona 于 2020-6-16 18:46 编辑

如果一定要用table的表头,无法实现显示同样的列名。
针对排序结果有问题,您是指的 image.png358953246.png 第一列无法排序是吗?
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
周哥哥
注册会员   /  发表于:2020-6-17 14:34:03
6#
Fiooona 发表于 2020-6-16 18:44
如果一定要用table的表头,无法实现显示同样的列名。
针对排序结果有问题,您是指的 第一列无法排序是吗?

1,如果隐藏表头,所有排序功能不生效;
2,如果不隐藏表头
     1,数据量多的时候可以排序,但是仅仅能够根据第一列排序,其它列不能排序;
         image.png304903258.png
      image.png599081420.png
2,数量少的时候所有列都不能排序
   image.png233692626.png
3,表头排序功能不起作用
image.png134082335.png
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-6-17 17:14:59
7#
您好,有几点需要注意
1. 表格列名不能重名,这个是因为有表格公式,列名是可以放到公式里的,必须唯一
2. 非表格的rangsort 区域中不能有表格,所以您Demo这样的结构,如果点击,筛选框去排序是不能排序的,因为包含区域里有表格
3. 您Demo里有四行数据,但是表格实际只包含了3行,所以数据量少没排序应该是这个问题。请确定下table的区域,

解决方案,
1. 移除table,用range的排序
2. 如果要保留table,需要重新调整table区域保证覆盖所有数据
然后在range排序的时候,调用table的排序重新排
  1.         spread.bind(GC.Spread.Sheets.Events.RangeSorting, function(s, e){
  2.                 console.log(s, e)
  3.                 var table = e.sheet.tables.all()[0]
  4.                 table.sort(e.col, e.ascending)
  5.                 e.cancel = true;
  6.         });
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部