大Vi 发表于 2023-6-16 11:39:31

【14.2.5】setDataSource再次设置会被之前的样式影响[SJS-18795]

本帖最后由 Joestar.Xu 于 2023-6-20 10:06 编辑

第一次设置数据源setDataSource(),每行样式(背景色,合并单元格,formatter等)根据要求显示不同,等到数据变化后,数据变化了,setDataSource后怎么上一次设置的样式什么的都还在,我需要它根据新数据调整成其他样式。

所以怎么在表格加载完后,只清空setDataSource设置的数据和样式,不动表头,重新设置新的数据和样式呢?

Joestar.Xu 发表于 2023-6-16 11:39:32

您好,我在您的Demo的基础上进行了修改,请查看一下是否是您想要的效果。


Joestar.Xu 发表于 2023-6-16 14:58:53

您好,从您的描述来看无法判断您遇到了什么问题,能否提供一个可以复现Demo这边调查一下?

大Vi 发表于 2023-6-16 16:40:43

Joestar.Xu 发表于 2023-6-16 14:58
您好,从您的描述来看无法判断您遇到了什么问题,能否提供一个可以复现Demo这边调查一下?
附件写了个简单的例子,初始数据如下,每行数据根据条件会展示成不同,比如第二行第一列是合并单元格,

点击下面修改数据,每行数据不同了,条件也变化了,第二行不应该是合并单元格,但是现在还是,所以是第一次设置数据的样式没有被覆盖

这样的问题不仅仅局限于合并单元格们还可能在其他样式,如果没有覆盖就会被影响,所以想知道有没有清空表内之前的设置,在再次设置进update方法是能以初始状态去渲染数据,不被之前的样式影响。

大Vi 发表于 2023-6-17 00:28:08

Joestar.Xu 发表于 2023-6-16 11:39
您好,我在您的Demo的基础上进行了修改,请查看一下是否是您想要的效果。

如果上一次设置数据设置了公式和数字检验,把数据源置空没用哦,还是会遗留。

大Vi 发表于 2023-6-17 00:28:36

大Vi 发表于 2023-6-17 00:28
如果上一次设置数据设置了公式和数字检验,把数据源置空没用哦,还是会遗留。

数字校验

Joestar.Xu 发表于 2023-6-19 10:14:47

本帖最后由 Joestar.Xu 于 2023-6-27 15:00 编辑

大Vi 发表于 2023-6-17 00:28
如果上一次设置数据设置了公式和数字检验,把数据源置空没用哦,还是会遗留。
您好,请问您的公式和数字校验具体是怎么设置的呢?可以提供一个Demo吗?

大Vi 发表于 2023-6-19 13:02:37

Joestar.Xu 发表于 2023-6-19 10:14
您好,请问您的公式好数字校验具体是怎么设置的呢?可以提供一个Demo吗?

合并单元格行price列需要设置校验,独立单元格行不需要
合并单元格行amount列需要设置公式,独立单元格行不需要

点击下面按钮切换数据后,原来的行还是保留了之前的校验和公式,我要的是根据新数据的行属性重新设置,或者在重新加载数据前先清空所有之前的这类设置。



Joestar.Xu 发表于 2023-6-19 14:53:05

大Vi 发表于 2023-6-19 13:02
合并单元格行price列需要设置校验,独立单元格行不需要
合并单元格行amount列需要设置公式 ...

您好,在重新加载数据前清空之前这类设置可以参考以下代码:

    sheet.setDataValidator(
      0,
      0,
      sheet.getRowCount(),
      sheet.getColumnCount(),
      null
    );

    sheet.setArrayFormula(0, 5, sheet.getRowCount(), 1, undefined);

但是我发现即使我添加了这些代码,即在重新加载数据前清除了这些验证和公式后,您在update这个方法中还是添加上了这些验证与公式,结果看上去也没有问题,所以还是不太明白您的需求。

大Vi 发表于 2023-6-19 15:55:30

本帖最后由 大Vi 于 2023-6-19 15:58 编辑

Joestar.Xu 发表于 2023-6-19 14:53
您好,在重新加载数据前清空之前这类设置可以参考以下代码:



很奇怪,放在sheet.setDataSource(data)后面就可以完全清除=


但是放在sheet.setDataSource([])前面,单单还有一个校验没清除

页: [1] 2
查看完整版本: 【14.2.5】setDataSource再次设置会被之前的样式影响[SJS-18795]